питон объект JSON синтаксический

голоса
0

Как разобрать питон объект JSON?

В настоящее время я получаю это значение из другого файла JSON, это переменный «Id6087b9b5b5» Но что, если я не знаю строку объекта, но я хочу, чтобы принести «_number» в цикле?

try.py

for sub_dict in y[ChangeID]:  #ChangeID is a variable
    print (ChangeID)
    MERGENUM = (entry['_number'])
    print (MERGENUM

)

data.json

  {
      Id6087b9b5b5: [
        {
          status: NEW,
          _number: 35328
        }
      ],
      Id6087b9b345: [
        {
          status: NEW,
          _number: 35348
        }
      ],
      Id6087b9b555: [
        {
          status: NEW,
          _number: 35310
        }
      ],
      Id6087b9b5b4: [
        {
          status: NEW,
          _number: 35308
        }
      ]
    }

Выход в качестве переменной

35328
35348
35310
35308
Задан 31/08/2018 в 15:18
пользователем
На других языках...                            


1 ответов

голоса
2

Вы можете использовать jsonразобрать строку JSON объект , а затем итерация объекта с цикл (таким образом, вам не нужно знать идентификаторы) и получить внутренний объект, каждый внутренний объект является массивом , который использует inner_object [0] чтобы получить первый объект:

import json
data = '''{
      "Id6087b9b5b5": [
        {
          "status": "NEW",
          "_number": 35328
        }
      ],
      "Id6087b9b345": [
        {
          "status": "NEW",
          "_number": 35348
        }
      ],
      "Id6087b9b555": [
        {
          "status": "NEW",
          "_number": 35310
        }
      ],
      "Id6087b9b5b4": [
        {
          "status": "NEW",
          "_number": 35308
        }
      ]
    }'''

print(data)

obj = json.loads(data)

for nid in obj:
    inner_obj = obj[nid][0]
    num = inner_obj['_number']
    print(num)
Ответил 31/08/2018 в 15:27
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more