我正在写入一个CSV文件,其中一个列值是一个大JSON字符串。我试图理解如何转义JSON中的逗号值,这样它就不会将它们作为CSV文件中的单独列写入。
我需要这个解决方案,而不使用传统的csv库,因为我想更好地了解将数据写入文件。
import json
# Emulating the process
d: dict = {"foo":"bar", "py": "pi"}
json_list: list[str] = [json.dumps(d)]
with open("file_test.csv", mode='a+') as f:
f.write('col_a,')
f.write('col_b,'+ '\n')
f.write(','.join(json_list)+'\n')
输出是一个CSV,类似于:
col_a,col_b
"{""foo"": ""bar"""," ""py"": ""pi""}"
我只想填充一列(col_B为空)。我是否必须用转义逗号替换json字符串中的每个逗号(字符串可能有几MB大),或者使用内置的json方法有更好的方法吗?
1条答案
按热度按时间8iwquhpp1#
您应该将值用引号括起来,并转义所有其他引号,如下所示:
如果你想让它更简单,我建议你使用
csv
模块或者使用制表符分隔。如果你真的想让json_list中的每一项都在新的一行(但只在第一列),使用这个: