TypeError:当我尝试挑选出数组的各个元素时

时间:2017-07-27 16:25:04

标签: python string for-loop set typeerror

这是我的代码,它给了我一个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

2 个答案:

答案 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]