pythonscsv writer在不需要时添加引号

2024-10-03 15:23:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我在使用csv writer将json对象写入文件时遇到问题,json对象似乎有多个双引号,因此导致json对象无效,结果如下:

"{""user.CustomAttribute.ISOLanguageCode"": ""en"", ""user.Email"": ""emzy1786@googlemail.com""

我想要的是

^{pr2}$

这里是我如何打开文件,也许有一个参数我可以传递,以防止这种情况发生?在

file = csv.writer(open(localResultPath + ".txt",'ab'),delimiter = '|')

下面是我如何写入文件,最后一个append将json作为字符串添加

list.append(pk)
list.append(email)
list.append(json)
file.writerow(list)

Tags: 文件csv对象jsonemaillistfileen
2条回答

使用quoting=csv.QUOTE_NONE关闭自动引用,并将quotechar设置为空字符串:

file = csv.writer(open(localResultPath + ".txt",'ab'), 
                  delimiter='|', quoting=csv.QUOTE_NONE, quotechar='')

即使使用csv.QUOTE_NONEcsv.writer()仍然希望引用quotechar,如果将其设置为空字符串以外的任何值,如果值中存在。默认的引号字符是",JSON值中充满了这些字符。在

演示:

^{pr2}$

你得把引号改成s.th。除此之外:

csv.writer(csvfile, delimiter='|',quotechar='&', quoting=csv.QUOTE_MINIMAL)

显然,请确保引用字符不会出现在对象中。在

如果您关闭了引号,那么当您的分隔符也出现在JSON对象中时,您必须小心。 更好的方法是使用json模块及其函数json.dump()和{}来编写和读取对象

相关问题 更多 >