df.to_csv时双引号导致的问题解决

在使用df.to_csv的时候出现了一些和双引号有关的问题

构造测试数据,其中在value中包含双引号

>>> import pandas as pd
>>> df = pd.DataFrame([{"test": 'id={"name":"test"}'}])

使用df.to_csv导出

>>> df.to_csv("test.txt", sep='|',index=False,header=True)

可以发现引号多了很多
在这里插入图片描述
这是由于csv格式中引号是个特殊字符,有几条限制:

通过下面的方法可以解决问题

>>> import csv
>>> df.to_csv("test.csv", sep='|',quoting=csv.QUOTE_NONE,index=False,header=True)

在这里插入图片描述

参考:
https://stackoverflow.com/a/21147228
https://blog.csdn.net/woaixiaoyu520/article/details/78455650
https://techterms.com/definition/csv

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
`df.to_csv()` 方法中常用的参数及其含义如下: - `path_or_buf`:保存 CSV 文件的路径或文件对象。可以是一个字符串类型的文件路径,也可以是一个文件对象(如 StringIO)。 - `sep`:CSV 文件中的分隔符,默认为逗号(`,`)。 - `na_rep`:用于替换缺失值(NaN)的字符串。 - `index`:是否在输出中包含行索引,默认为 True。如果设置为 False,则不会将行索引写入文件中。 - `header`:是否在输出中包含列名,默认为 True。如果设置为 False,则不会将列名写入文件中。 - `columns`:要写入 CSV 文件的列。可以是列名列表,也可以是一个布尔值的序列。如果是布尔值的序列,则只会写入在该序列中为 True 的列。 - `index_label`:行索引的标签名称。 - `mode`:写入文件的模式,默认为 `'w'`(覆盖写入)。如果设置为 `'a'`,则会在文件末尾追加写入。 - `encoding`:CSV 文件的编码格式,默认为 `'utf-8'`。 - `compression`:压缩格式,如 `'gzip'`、`'bz2'`、`'zip'` 或 `None`(默认值)。 - `line_terminator`:行终止符,如 `'\n'` 或 `'\r\n'`。 - `quoting`:控制是否需要引用非数字字段,如字符串。可选值有 `csv.QUOTE_MINIMAL`、`csv.QUOTE_ALL`、`csv.QUOTE_NONNUMERIC` 或 `csv.QUOTE_NONE`。 - `quotechar`:引用非数字字段使用的字符,默认为 `'"'`。 - `escapechar`:在引用非数字字段,用于转义引用字符的字符,默认为 `'\\'`。 - `date_format`:日期格式字符串,用于将日期间类型转换为字符串。 - `doublequote`:控制是否将字段中的双引号替换为两个双引号,默认为 True。 以上是常用的一些参数,完整的参数列表可以参考 Pandas 文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值