我有一个包含列表的字典;密钥基于每个列表中的第一项 . 使用有趣的随机数据集,字典构建如下:
import collections
rand_ls = [["A","bb","cc"],["B","dd","ee"],["A","ff","gg"],["B","hh","ii"]]
d = collections.defaultdict(list)
for item in rand_ls:
d[item[0]].append(item)
print(dict(d))
# {'A': [['A', 'bb', 'cc'], ['A', 'ff', 'gg']], 'B': [['B', 'dd', 'ee'], ['B', 'hh', 'ii']]}
我想将每个密钥中保存的列表写入单独的.csv文件中,每个密钥一个 . 我发现的最接近的解决方案是详细的here,但我无法让它工作 . 我想要的格式:
letterA.csv
A bb cc
A ff gg
letterB.csv
B dd ee
B hh ii
注意: letter{}.csv 是每个密钥的唯一文件;每个列表(在每个键内)都在一个单独的行上,列表中的每个项目都由一个选项卡分隔 .
我的代码是这样的:
for key,lists in d.items():
with open("letter{}.csv".format(key), "w") as f:
f.writelines(lists, delimiter='\t')
它不断抛出错误: "TypeError: writelines() takes no keyword arguments" . 我已经做了一些阅读,我知道writelines()需要一系列字符串,所以不太确定缺少什么 .
基于我在别处读到的内容,代码 open("letter{}.csv".format(key), "w") 应为每个键创建一个唯一的文件,后续行应指示将列表写入相应的文件 .