JSON: TypeError: строковые индексы должны быть целыми числами - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь получить Total Confirmed Cases for Global от здесь , но я получаю TypeError: string indices must be integers, когда пытаюсь запустить эту функцию:

def getstats():
    api_url = urllib.request.urlopen('https://api.covid19api.com/summary')
    data = json.load(api_url)
    for item in data["Global"]:
        print(item["TotalConfirmed"])

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Перебор элементов в data["Global"] возвращает ключи в виде строк.

print(*(i for i in data["Global"]))
NewConfirmed TotalConfirmed NewDeaths TotalDeaths NewRecovered TotalRecovered

Что вы пытаетесь сделать, это получить значение внутреннего словаря

print(data["Global"]["TotalConfirmed"])
2807945
0 голосов
/ 25 апреля 2020

item - это String под клавишей Global. Используйте print(item), чтобы увидеть строку. Вам нужно проанализировать эту строку дальше, чтобы получить значение TotalConfirmed.

...