Pandas to_csv导出含原始JSON列时多余双引号问题
Pandas导出CSV时JSON列避免引号转义的解决办法
问题根源是Pandas导出CSV的默认规则:会给包含双引号、逗号这类特殊字符的字段自动添加外层双引号,并转义内部的双引号,导致出现"{""col_1"":""1"",""col_2"":""1""}"这类不符合预期的格式。
方法1:禁用自动引号(推荐)
直接在to_csv方法中指定quoting=csv.QUOTE_NONE,让Pandas不对任何字段添加引号,JSON列就能原样输出。使用前需要导入csv模块:
import csv import pandas as pd # 假设你的DataFrame变量为df df.to_csv('output.csv', header=False, quoting=csv.QUOTE_NONE)
执行后导出的内容就是你期望的1,2,{"col_1":"1","col_2":"1"}。
方法2:手动拼接行内容(更灵活)
如果担心其他字段可能包含逗号等分隔符,导致自动导出格式混乱,可以手动拼接每一行的内容后写入文件:
import pandas as pd with open('output.csv', 'w', newline='') as file: for _, row in df.iterrows(): # 按字段顺序拼接字符串,raw_json直接使用原列值 line = f"{row['col_1']},{row['col_2']},{row['raw_json']}\n" file.write(line)
另外,你之前遍历生成JSON的代码存在语法错误:for i, row in df: 应该修改为 for i, row in df.iterrows(),否则会触发迭代对象不匹配的错误。
内容的提问来源于stack exchange,提问作者thejoker34
相关产品推荐
相关产品推荐

