Введите ошибку при доступе к данным API и вставьте ее в файл CSV.Python

Программы на Python
Гость
Введите ошибку при доступе к данным API и вставьте ее в файл CSV.

Сообщение Гость »


Я пытаюсь использовать Python для доступа к API, извлечь из него указанные данные и добавить их в CSV-файл под правильными заголовками элементов. Я продолжаю получать ошибку:

name = item['name'] TypeError: строковые индексы должны быть целыми числами, а не 'str' для строки рядом с началом первого цикла: .

Не могу понять, что я сделал не так:

запросы на импорт импортировать CSV из pprint импортировать pprint как pp aHeader = ['имя', 'год_рождения', 'рост', 'масса'] с open('star_wars_people2.csv', 'w') в виде файла: файл = csv.DictWriter(файл, имена полей=aHeader) файл.writeheader() защита get_info(): для элемента в данных: имя = элемент['имя'] год_рождения = элемент['год_рождения'] высота = элемент['высота'] масса = предмет['масса'] с open('star_wars_people2.csv', 'a') в качестве файла: aFile.write(имя + год рождения + рост + масса + "\n") для меня в диапазоне (5): user_input = input("Выберите число от 1 до 83, чтобы найти связанного персонажа из "Звездных войн": ") endpoint2 = 'https://swapi.dev/api/people/{}/'.format(user_input) ответ = запросы.получить(конечная точка2) данные = ответ.json() пп(данные) user_input2 = input("Хотите добавить эту информацию в файл?") если user_input2 == 'y' или 'Y': получить данные() еще: print('Нет проблем!') Я новичок в кодировании, но заметил, что когда я нацелился на весь API и использовал приведенный ниже код, он сработал для нацеливания на один конкретный элемент, но я не могу затем преобразовать это в указание страницы и таргетинга. несколько элементов:
endpoint1 = 'https://swapi.dev/api/people/' ответ = запросы.получить(конечная точка1) данные = ответ.json() пп(данные) aHeader = ['имя', 'год_рождения', 'рост', 'масса'] с open('star_wars_people2.csv', 'w') в виде файла: файл = csv.DictWriter(файл, имена полей=aHeader) файл.writeheader() # защита get_info(): для элемента в данных['results']: с open('star_wars_people2.csv', 'a') в качестве файла: aFile.write(item['name'] + "\n")

Вернуться в «Python»