«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как устранить ошибку «TypeError: строковые индексы должны быть целыми числами» при анализе данных JSON?

Как устранить ошибку «TypeError: строковые индексы должны быть целыми числами» при анализе данных JSON?

Опубликовано 21 декабря 2024 г.
Просматривать:387

How to Resolve

Избегайте «TypeError: строковые индексы должны быть целыми числами»

При попытке преобразовать данные из файла JSON в понятный формат CSV вы можете столкнуться с ошибкой «TypeError: Строковые индексы должны быть целыми числами». Эта ошибка возникает при доступе к полям строки, как если бы это был словарь. Давайте рассмотрим решение.

Понимание ошибки

Чтобы понять причину ошибки, важно отметить, что строки в Python не могут индексироваться, как словари. В словарях ключи доступны как строки, например, словарь["ключ"]. Напротив, доступ к полям строки должен осуществляться с использованием целочисленных индексов, как показано в следующем примере:

mystring = "helloworld"
print(mystring[0])  # Outputs 'h', as '0' refers to the first character

Применение решения

В вашем коде вы пытаетесь получить доступ к полям элемента переменная типа string:

csv_file.writerow([item["gravatar_id"], item["position"], item["number"]])

Чтобы решить проблему, преобразуйте переменную item в словарь перед доступом к ее полям:

csv_file.writerow([item.get("gravatar_id"), item.get("position"), item.get("number")])

В качестве альтернативы вы можете использовать функцию load() модуля json для преобразования элемента строку непосредственно в словарь:

item_dict = json.loads(item)
csv_file.writerow([item_dict["gravatar_id"], item_dict["position"], item_dict["number")])

Эти изменения гарантируют доступ к полям с использованием целочисленных индексов, устраняя ошибку «TypeError: Строковые индексы должны быть целыми числами». Ошибка.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3