gpt4 book ai didi

python - 在 Python 中将数组转换为 CSV/TSV 格式的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:53 34 4
gpt4 key购买 nike

Python 提供了 csv.DictWriter 用于输出 CSV 到文件。将 CSV 输出到字符串或标准输出的最简单方法是什么?

例如,给定一个这样的二维数组:

[["a b c", "1,2,3"],
["i \"comma-heart\" you", "i \",heart\" u, too"]]

返回以下字符串:

"a b c, \"1, 2, 3\"\n\"i \"\"comma-heart\"\" you\", \"i \"\",heart\"\" u, too\""

打印时看起来像这样:

a b c, "1,2,3"
"i ""heart"" you", "i "",heart"" u, too"

(我用 csv.DictWriter 的话说,这实际上是将该数组输出为 CSV 的规范方式。Excel 确实以这种方式正确解析它,但 Mathematica 没有。快速查看 wikipedia page on CSV 它似乎 Mathematica 是错误的。)

一种方法是使用 csv.DictWriter 写入临时文件并使用 csv.DictReader 读回。什么是更好的方法?

TSV 而不是 CSV

我还想到,我并不热衷于 CSV。TSV 会消除分隔符和引号带来的许多麻烦:只需在二维数组的条目中用空格替换制表符,然后散布制表符和换行符即可。让我们在答案中包括 TSV 和 CSV 的解决方案,以使其对 future 的搜索者尽可能有用。

最佳答案

为此我们使用 StringIO

myFakeFile = StringIO.StringIO()
wtr = csv.DictWriter( myFakeFile, headings )
...
myFakeFile.getvalue()

通常有效。

关于python - 在 Python 中将数组转换为 CSV/TSV 格式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2768810/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com