【发布时间】:2021-02-06 07:46:09
【问题描述】:
我正在尝试将数组写入 csv,但如果数组单元格中有双引号,它会添加如下引号:
数组中的示例数据:快速的棕色“狐狸”跳跃
csv 中的相同数据:“The quick brown ""fox"" jumps"
如果第一部分用这样的引号括起来:“The quick” brown fox jumps,它会做同样的事情:“”“The quick”“ brown fox jumps”。所以它是在有引号的部分周围添加引号,然后在整个单元格内容周围添加引号。
这是我写入 csv 的代码:
matrix = populateArray()
with open('phrases.csv', 'w', encoding='utf-8', newline='') as f:
thewriter = csv.writer(f)
for x in range(0,1):
print(matrix[x])
thewriter.writerow(matrix[x])
print(matrix[x]) 的输出是:
['The "quick" brown fox jumps', 'Lorem ipsum']
因此,您可以直接看到数据在写入 csv 之前已正确格式化,但在实际写入 csv 期间,它会添加如上所述的额外引号。
非常感谢任何帮助。 谢谢
【问题讨论】:
-
双引号在 CSV 文件中意味着一些特殊的东西。
csvwriter将第一轮"添加为两轮,因为这就是 CSV 标准中引号的转义方式。当你用相应的阅读器读回它时,它将与matrix[x]相同。如果您更改此行为,您的输出 CSV 文件可能无法读取您编写的相同字符串