繁体   English   中英

如何将 output 字典以 csv 格式输出到 python 中?

[英]How to output a dictionary to stdout in csv format in python?

我一直在寻找以 csv 格式将字典输出为标准 output 的方法。

字典具有以下格式

my_dict = {
  "column1": ["row1","row2","row3",...],
  "column2": ["row1","row2","row3",...],
  "column3": ["row1","row2","row3",...]
}

我找到了将字典输出到标准输出的解决方案:

Python:词典列表:如何 - 使用 sys.stdout 进行漂亮的打印输出

我总是可以在 for 循环中只sys.stdout的每一列和每一行。 但是,我不确定在边缘情况下会发生什么(某些图书馆会这样做)。

我还找到了将字典输出到 csv 的解决方案: How do I write a Python dictionary to a csv file?

但是,这些总是将字典写入文件 object 而不是标准输出。

我的问题是有没有办法以 csv 格式将字典输出到 stdout(也处理边缘情况,例如:带有,"字符的行值会损坏 csv 文件)?

您始终可以将 StringIO 用于需要类似文件StringIO的方法。 此外DictWriter不是完成此任务的正确工具,因为它适用于dict list

import csv
from io import StringIO

my_dict = {
  "column1": ["row1", "row2", "row3",],
  "column2": ["row1", "row2", "row3",],
  "column3": ["row1", "row2", "row3",]
}

f = StringIO()
writer = csv.writer(f)
writer.writerow(my_dict.keys())
writer.writerows(zip(*my_dict.values()))

print(f.getvalue())

这将打印

column1,column2,column3
row1,row1,row1
row2,row2,row2
row3,row3,row3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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