如何保存带有斜杠转义的csv文件?

时间:2019-04-15 22:10:44

标签: python pandas csv

虽然有关python csv报价的问题很多,但我相信我遇到了一个未涉及的案例。

我有一些示例代码:

import pandas as pd
import csv

df = [(1, '1\' 2"',), (2, '1\' 4"')]
df = pd.DataFrame(df, columns=['months', 'height'])
print(df.head())

df.to_csv('blah.csv', index=False, quoting=csv.QUOTE_MINIMAL, 
          quotechar='"', escapechar='\\')

它产生以下输出:

   months height
0       1  1' 2"
1       2  1' 4"

保存到csv中,看起来像:

months,height
1,"1' 2"""
2,"1' 4"""

但是,我希望它看起来像这样:

months,height
1,"1' 2\""
2,"1' 4\""

(如果您想知道,这就是Spark默认csv编写器的输出格式。)

双引号被转义的地方。我找不到一种方法来做...任何指针将不胜感激。

1 个答案:

答案 0 :(得分:2)

您需要传递doublequote=False(默认为True),也需要传递quoting=QUOTE_NONNUMERIC

df.to_csv('blah.csv', index=False, quoting=csv.QUOTE_NONNUMERIC, 
      quotechar='"', escapechar='\\', doublequote=False)

查看文档:{​​{3}}

输出:

"months","height"
1,"1' 2\""
2,"1' 4\""