JSON Вытяжка Python - PullRequest
       6

JSON Вытяжка Python

0 голосов
/ 13 июля 2020

Я пытаюсь извлечь конкретную c часть из JSON, но продолжаю получать ошибки.

Меня интересуют следующие разделы:

"field": "tag",
"value": "Wian",

Я могу извлечь весь раздел фильтра, используя:

for i in range(0,values_num):
    dedata[i]['filter']

Но если я попытаюсь отфильтровать за пределами этой точки, я просто получаю ошибки.

Может ли кто-нибудь помочь мне с этим?

Вот стиль вывода JSON:

{
  "mod_time": 1594631137499,
  "description": "",
  "id": 82,
  "name": "Wian",
  "include_custom_devices": true,
  "dynamic": true,
  "field": null,
  "value": null,
  "filter": {
    "rules": [
      {
        "field": "tag",
        "operand": {
          "value": "Wian",
          "is_regex": false
        },
        "operator": "~"
      }
    ],
    "operator": "and"
  }
}

1 Ответ

0 голосов
/ 13 июля 2020

Вероятно, вы пытаетесь получить доступ к данным в правилах, но, поскольку это массив, вам нужно специально получить доступ к этому массиву, получив индекс [0].

Вы могли бы просто использовать .get('<name>'), как показано ниже:

dedata['filter']['rules'][0].get('field'))

Аналогично для значения:

dedata[i]['filter']['rules'][0]['operand'].get('value')

закомментируйте для l oop и попробуйте без него и [i] и посмотрите, работает ли

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...