如何使用斜杠转义的引号保存csv文件?

问题描述 投票:1回答:1

虽然有很多关于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编写器的输出格式。)

双引号被转义的地方。我找不到办法做到这一点......任何指针都会受到赞赏。

python pandas csv
1个回答
2
投票

你需要传递doublequote=False(默认为True),还有quoting=QUOTE_NONNUMERIC

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

见文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html

输出:

"months","height"
1,"1' 2\""
2,"1' 4\""
© www.soinside.com 2019 - 2024. All rights reserved.