Как отобразить значения JSON с использованием Python итеративным способом - PullRequest
1 голос
/ 13 апреля 2019

У меня есть объект JSON, как показано ниже, который я загружаю из файла.Я хочу проанализировать объект JSON для всех значений CityName.

{
    "CityList": [
        {
            "Continent": "USA", 
            "CityName": "Chicago"
        }, 
        {
            "Continent": "Russia", 
            "CityName": "Moscow"
        }, 
        {
            "Continent": "Asia", 
            "CityName": "Beijing"
        }, 
        {
            "Continent": "Australia", 
            "CityName": "Sydney"
        }
    ]
} 

Я использую скрипт Python для извлечения элемента CityName из JSON, например, через цикл FOR.Я хочу использовать переменную name в нисходящем направлении по ряду других причин.

 name=Chicago
name=Moscow
name=Beijing
name=Sydney

До сих пор я пробовал следующее.

with open('city_names.json','r') as read_file:
    json_data = read_file.read()
data = json.loads(json_data)
for k,v in data.items():
    name=v['CityName']
    print(name)

После неудачного выполнения вышеприведенного в течение довольно продолжительного времени, Я продолжаю получать эту ошибку "TypeError: индексы списка должны быть целыми числами, а не str".Я знаю, в чем проблема, но, к сожалению, я не знаю, как исправить.Помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

, чтобы получить CityName, вы можете просмотреть data['CityList'], так как это список:

for v in data['CityList']:
      name=v['CityName']
      print(name)
0 голосов
/ 13 апреля 2019

Ваши данные представляют собой список диктов под клавишей CityList, поэтому вы должны сначала выполнить итерацию по поддиктациям списка, а затем вывести значение клавиши CityName:

for d in data['CityList']:
    print(d['CityName'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...