我有一个包含列表的字典;键基于每个列表中的第一项.使用有趣的随机数据集,字典构建如下:
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()不接受任何关键字参数”.我已经做了一些阅读,我知道writelines()需要一系列字符串,所以不太确定缺少什么.
基于我在别处读到的内容,代码打开(“letter {}.csv”.format(key),“w”)应该为每个键创建一个唯一的文件,后续行应该指向要写入的列表适当的文件.