我有一个名为“empty_list”的词典列表
[{u'course': 123,
u'lat': 123,
u'lon': 123,
u'navigationalStatus': 0.0,
u'sog': 0.0,
u'ts': 123,
u'Id': u'abcd'},
{u'course': 123,
u'lat': 123,
u'lon': 123,
u'navigationalStatus': 0.0,
u'sog': 123,
u'ts': 123,
u'Id': u'abcde'}]
Bsically我想获得一个列表,new_list
[(u'abcd', lat, lon),
(u'abcde', lat, lon)]
当我这样做时:
new_list = []
for item in empty_list:
new_list.append(( item['Id'],item['lat'], item['lon']))
我得到TypeError: list indices must be integers, not str
但无论如何它似乎都有效。问题是new_list
的长度只有24(当empty_list
的长度为288时)。
你知道如何调试吗?
答案 0 :(得分:0)
您可以将列表分成两个词典
e
[{'Id': 'abcd',
'course': 123,
'lat': 123,
'lon': 123,
'navigationalStatus': 0.0,
'sog': 0.0,
'ts': 123},
{'Id': 'abcde',
'course': 123,
'lat': 123,
'lon': 123,
'navigationalStatus': 0.0,
'sog': 123,
'ts': 123}]
然后
chunks = [e[x:x+1] for x in range(0, 2)]
c0 = chunks[0][0]
c1 = chunks[1][0]
现在你有c0
{'Id': 'abcd',
'course': 123,
'lat': 123,
'lon': 123,
'navigationalStatus': 0.0,
'sog': 0.0,
'ts': 123}
您可以解压缩密钥和值,然后选择您想要的
keys, values = dict.keys(c0), dict.values(c0)
keys
dict_keys(['course', 'lat', 'lon', 'navigationalStatus', 'sog', 'ts', 'Id'])
values
dict_values([123, 123, 123, 0.0, 0.0, 123, 'abcd'])