考虑一个csv:
id name age
1 x 12
2 y 13
3 z 14
这是代码:
fnolcsvload = csv.DictReader(open('/Users/swaghccc/Desktop/CCCTestWithDataWithoutAccidentDescriptionCopy2.csv', 'rU'))
list_ = []
for rows in fnolcsvload:
list_.append(rows)
现在我有一个词典列表。 我想知道如何创建一个包含多个值的单个键的字典。 例如,而不是:
list_ = [{'id': '1', 'name': 'x', 'age': '12'}...]
我想要一个带有主键的字典,将csv中的所有行作为与该键相关联的值。换句话说,一个示例键值对将是:
{'id': {'id': '1', 'name': 'x', 'age': '12'},
'id': {'id': '2', 'name':'y', 'age': '13'},
'id': {'id': '3', 'name': 'z', 'age': '14'} }
答案 0 :(得分:0)
简而言之:你无法做到这一点。 dict
是唯一键值的映射。
好消息:您可以非常轻松地获得列表的字典,每个列表在需要时存储多个值。
>>> from collections import defaultdict
>>> data = defaultdict(list) # Auto-creates a list for every accessed key.
>>> data['people'].append('Joe')
>>> data['people'].append('Jane') # Same key.
>>> data['animals'].append('cat')
>>> data['animals'].append('dog')
>>> data["people"]
['Joe', 'Jane']
>>> data["animals"]
['cat', 'dog']
>>> data["something we never touched"]
[]
>>> _
希望这有帮助。