Python 如何从字典列表中提取值
我有一个字典列表叫做“空列表” B实际上我想得到一个列表,Python 如何从字典列表中提取值,python,list,dictionary,Python,List,Dictionary,我有一个字典列表叫做“空列表” B实际上我想得到一个列表,new\u 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:列表索引必须是整数,而不是str 但不管怎么说,这似乎是可行的。问题是new\u lis
new\u 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:列表索引必须是整数,而不是str
但不管怎么说,这似乎是可行的。问题是new\u list
的长度仅为24(而empty\u list
的长度为288)
你知道我如何调试它吗?你可以把你的列表分成两个字典
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}]
然后
现在你有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'])
你确定吗?您的精确代码不会给我带来任何错误,并且工作得非常好。另一方面,如果列表不是空的,请不要使用名称
empty\u list
。这可能是因为emptyList
中的某些条目不是dicts。该错误意味着某些条目可能是自己列出的。如何检查所有条目是否都是dict?您可以通过在for循环中打印条目的类型来进行调试。从集合导入计数器打印类型(项目)==dict
应尝试;计数器(映射(类型,空列表))
打印出初始空列表中每种类型的计数。
{'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'])