python - 如何保存带有斜杠转义引号的 csv 文件?

标签 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 编写器的输出格式。)

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

最佳答案

您需要传递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\""

关于python - 如何保存带有斜杠转义引号的 csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55697880/

相关文章:

Windows 上的 Python-Django-WSGI-Apache - “ImportError: No module named site”

python - 使用 Docker 实例制作 Web 服务器 - 什么去哪里?

python - 如何为 pandas qcut 标签定义函数?

linux - 如何设置提交后运行 "xterm -e unison &"的提交后 Hook ?

ruby-on-rails - 如何为 FasterCSV 预处理 CSV 数据?

Python URL 和目标列表

java - 如何从java检查python是否安装在windows中?

python - 如何从数据帧中获取数组或列表(其中 python 读取为 str 格式类型)?

python - 读取DataFrame的列失败

mysql将数据加载到多个表中并循环