这是我的代码,它给了我一个TypeError。这里,IndexOut是一个预定义的集合以及data和datafinal。数据格式'数据'是JSON,如下:
[{'timestamp': 1499159501922, 'coordinates': [12.919082641601562,
77.65169525146484]}, {'timestamp': 1499159503930, 'coordinates':
[12.918915748596191, 77.6517105102539]}, {'timestamp': 1499159506936,
'coordinates': [12.918656349182129, 77.65177154541016]}, {'timestamp':
1499159509002, 'coordinates': [12.918524742126465, 77.6517562866211]},
{'timestamp': 1499159511984, 'coordinates': [12.918295860290527,
77.65178680419922]},
这是运行它的代码。以上数据已定量更改,但格式保持不变
for i in range(0, length-1):
data.pop(IndexOut[i])
for i in data:
datafinal.add((i['coordinates']['latitude'], i['coordinates']
['longitude']))
print (datafinal)
Out .. TypeError:list indices必须是整数或切片,而不是str
答案 0 :(得分:0)
列表中的元素使用数字编制索引,并且不能使用与字典不同的字符串编制索引。纬度和经度是每个列表中的元素0和1,因此以下内容应该有效:
datafinal.add((i['coordinates'][0], i['coordinates'][1]))
答案 1 :(得分:0)
看起来'coordinates'是一个长度为2的数组,并且您尝试访问它就像它是一个对象一样,在这里:
i['coordinates']['latitude'].
尝试使用i['coordinates'][0], i['coordinates'][1]