я очень новичок в программирование и у меня возникла проблемы со следующим:TypeError: строковые индексы должны быть целыми числами, при попытке извлечь данные из API с помощью Python
У меня есть очень простая и, возможно, бессмысленная задача, посредством которой Я пытаюсь взять данные о долготе и широте из API JSON и записать в CSV-файл. Я основал код на другом, который, похоже, работает нормально.
я получаю следующий код ошибки:
c.writerow([item['latitude']])_TypeError: string indices must be integers
Может кто-нибудь мне помочь ??
код JSON из http://api.open-notify.org/iss-now.json
{
"iss_position": {
"latitude": 17.03894678089794,
"longitude": 1.17550020887323
},
"message": "success",
"timestamp": 1463137065
}
Мой Python код
import requests
import csv
r = requests.get("http://api.open-notify.org/iss-now.json").json()
c = csv.writer(open("ISS.csv", "w"),lineterminator='\n')
for item in r['iss_position']:
c.writerow([item['latitude'],['longitude']])
Сообщение об ошибке
C:\Python35\python.exe C:/Users/Ian/PycharmProjects/ISS/ISS.py
Traceback (most recent call last):
File "C:/Users/Ian/PycharmProjects/ISS/ISS.py", line 10, in <module>
c.writerow([item['latitude']])
TypeError: string indices must be integers
Process finished with exit code 1
Спасибо Piotr, который теперь записал координаты в мой CSV-файл, хотя он, похоже, дважды записывает данные. Могли бы вы посоветовать, как я могу получить новые данные для добавления в мой CSV-файл, а не писать поверх него. –
См. Мое правление о цикле 'for'. Что касается других несвязанных вопросов, пожалуйста, Google их. Здесь много ресурсов, в том числе [добавление в CSV] (http://stackoverflow.com/questions/21432610/python-append-to-csv-file-without-whiteline). –
ОК и спасибо за очень быстрый ответ –