Как выбрать поля для разных отступов в выводе json - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь получить два поля в выводе JSON, которые находятся в разных отступах. Как я могу выбрать их оба и вывести их обратно мне?

Пример JSON data:

],
    "hostName": "Test123",
    "hostNames": [
        {
            "name": "Test",
            "source": "other"
        },
        {
            "name": "Test",
            "source": "other"
        }
    ],
    "id": 123,
    "ids": [
        {
            "id": "111",
            "source": "none"
        },

Пример кода, который я пытался использовать:

    for i in data["hostName", "id"]:
        print(i) 

Ошибка:

KeyError: ('hostName', 'id')

Есть несколько полей идентификатора, но мне бы хотелось, чтобы поле имело только 123, эти идентификаторы будут разными, поэтому я не могу жестко закодировать его для поиска id = 123. Вместо этого мне нужно сослаться на указанный c отступ, где id в этом примере - 123.

Вывод должен быть примерно таким:

hostName : Test123,  id : 123

1 Ответ

1 голос
/ 12 февраля 2020

Вам нужно показать нам полный JSON, который вы пытаетесь проанализировать, потому что из первых 2 символов он не выглядит правильно сформированным JSON ],.

Вы нужно либо удалить все в json выше этого, либо найти значение перед hostname и сделать это,

for i in data[1]["hostName", "id"]:
       print(i) 

где 1 - номер вложенного списка вашего JSON Похоже, что в.

...