[英]How to write a dictionary to tab-separated file without using Pandas?
如何将以下字典写入以键为列标题的制表符分隔文件?
到目前为止的代码:
import csv
test_dict = {"A": 1, "B": 2, "C": 3}
with open("output_file.txt", 'w') as f:
writer = csv.DictWriter(f, fieldnames = list(test_dict.keys()), delimiter = '\t')
writer.writeheader()
writer.writerows(test_dict)
我不断收到错误
AttributeError: 'str' object has no attribute 'keys'
与writerows()
函数有关。
我尽量不使用 Pandas。
DictWriter.writerows
需要可迭代的字典。 你只给它一本字典——所以它试图展开它。
您可以通过将test_dict
包装在列表中来解决它
writer.writerows([test_dict])
或者使用writerow
方法
功能writerows
预计的列表dicts
和你逝去只是一个dict
。
修改代码如下:
import csv
test_dict = {"A": 1, "B": 2, "C": 3}
with open("output_file.txt", 'w') as f:
writer = csv.DictWriter(f, fieldnames = list(test_dict.keys()), delimiter = '\t')
writer.writeheader()
writer.writerows([test_dict]) #passing an list of dicts
您可以使用函数writerow
而不是writerows
将单行写入文件。
import csv
test_dict = {"A": 1, "B": 2, "C": 3}
with open("output_file.txt", 'w') as f:
writer = csv.DictWriter(f, fieldnames = list(test_dict.keys()), delimiter = '\t')
writer.writeheader()
writer.writerow(test_dict) #passing single row
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.