我写过这个查询,主要是获取json的详细信息。但是我收到了错误
print("Latitude\longitude\Title\Place\Mag")
while i< (len(dict_data)):
print(str(dict_data['features'][i]['geometry']['coordinates'][i]) +"\t"+
str(dict_data['features'][i]['geometry']['coordinates'][i+1])+ "\t"+
str(dict_data['features'][i]['properties']['title']) +"\t"+ str(dict_data['features'][i]['properties']['place'])
+"\t"+ str(dict_data['features'][i]['properties']['mag']))
i=i+1
IndexError Traceback (most recent call last)
IndexError: list index out of range
答案 0 :(得分:1)
由于您正在寻找经度和纬度,我猜测@ {Hadus建议的LONGITUDE=0
LATTITUDE=1
while i< (len(dict_data)):
coords = dict_data['features'][i]['geometry']['coordinates']
properties = dict_data['features'][i]['properties']
print(
str(coords[LONGITUDE]) +"\t"+ str(coords[LATITUDE])+ "\t"+
str(properties['title']) +"\t"+ str(properties['place']) +"\t"+
str(properties['mag']))
i=i+1
是错误的。此外,一些查找可以移出打印,使更清洁:
antMatcher
答案 1 :(得分:0)
循环语句
while i< (len(dict_data))
您将i
与dict_data
词典的长度进行比较。但是在print
语句中,您使用i
来索引dict_data['features']
字段和(!)dict_data['features'][i]['geometry']['coordinates']
字段。此外,您使用i+1
索引。我需要更多的信息(至少json的例子)来确定出现了什么问题。
答案 2 :(得分:0)
坐标是一个列表(长度为2)而不是字典。
实施例:
{'features':{0:{'geometry':{'coordinates':['latitude', 'longtitude']}}}}
print(str(dict_data['features'][i]['geometry']['coordinates'][0]) +"\t"+
str(dict_data['features'][i]['geometry']['coordinates'][1])+ "\t"+
str(dict_data['features'][i]['properties']['title']) +"\t"+ str(dict_data['features'][i]['properties']['place'])
+"\t"+ str(dict_data['features'][i]['properties']['mag']))
@Andrew Gillis的答案更好,我会推荐它,除非你想要丑陋的代码永远不会好。