繁体   English   中英

如何在不使用 Pandas 的情况下将字典写入制表符分隔的文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM