[英]Using Python and GitHub's API : TypeError: string indices must be integers
[英]TypeError: string indices must be integers when trying to extract data from an API using Python
我對編程非常陌生,但以下方面存在問題:
我有一個非常簡單甚至可能毫無意義的任務,我試圖從JSON API中獲取經度和緯度數據並寫入CSV文件。 我已經基於另一個似乎可以正常工作的代碼。
我不斷收到以下錯誤代碼:
c.writerow([item ['latitude']])_ TypeError:字符串索引必須為整數
誰能幫我??
來自http://api.open-notify.org/iss-now.json的 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
分配給iss_position
鍵( r['iss_position']
)的值是一個字典。 因此,對其進行迭代將產生鍵(字符串)而不是值(坐標)。 在這種情況下,似乎可以這樣做:
c.writerow([r['iss_position']['latitude'],r['iss_position']['longitude']])
for
循環不再需要。 字典中的'iss_position'
鍵下有兩個鍵,因此循環翻了兩次。 一次調用上面的代碼就足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.