您好,我有一个格式如下的 CSV 文件:
ticket asset
1111 3456
1111 6789
1122 2345
1122 7890
我想把它转换成像这样的字典:
{'1111': ['3456', '6789'], '1122':['2345', '7890']}
基本上希望将票据作为“键”,并将该票据下的所有 Assets 作为“值”。
csv.DictReader() 有点帮助,但我无法提取 key 的唯一票号并匹配其下的所有 Assets 以获取值。
任何帮助都会很棒 :)
感谢您如此快速地获取 CSV > Dict!
如果我想将 Tuple 转换为 Dict,那将如何工作?
例如:元组: ((1111, 3456), (1111, 6789), (1122, 2345), (1122, 7890))
我希望将其转换为:
{'1111': ['3456', '6789'], '1122':['2345', '7890']}
最佳答案
使用collections.defaultdict
:
from collections import defaultdict
import csv
d = defaultdict(list)
with open(filename, 'r', newline='') as f:
reader = csv.reader(f, delimiter='\t')
next(reader) # toss headers
for ticket, asset in reader:
d[ticket].append(asset)
使用普通字典:
import csv
d = {}
with open(filename, 'r', newline='') as f:
reader = csv.reader(f, delimiter='\t')
next(reader) # toss headers
for ticket, asset in reader:
d.setdefault(ticket, []).append(asset)
关于python - 将 CSV 转换为字典,其中一列作为键,一列作为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56062627/