带有JSON的Python CSV模块问题

带有JSON的Python CSV模块问题,python,json,csv,Python,Json,Csv,我正在使用pythoncsv模块创建一个csv,其中一些值是json字符串。然而,csv模块的引用完全破坏了json: import csv import json writer = csv.writer(open('tmp', 'w')) writer.writerow([json.dumps([{'a' : 'b'}])]) 输出的json被破坏,如您所见: cat tmp > "[{""a"": ""b""}]" import json json.loads("[{""a"":

我正在使用python
csv
模块创建一个csv,其中一些值是
json
字符串。然而,
csv
模块的引用完全破坏了json:

import csv
import json
writer = csv.writer(open('tmp', 'w'))
writer.writerow([json.dumps([{'a' : 'b'}])])
输出的json被破坏,如您所见:

cat tmp
> "[{""a"": ""b""}]"

import json
json.loads("[{""a"": ""b""}]")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 2)
还有其他人遇到过这种情况吗?
json
csv
是否只是在一起玩得不好?(在
csv
文件中存储
json
stirngs不是我的主意……我现在只需要处理一些事情)。不幸的是,我正在创建的这些CSV包含哈希摘要和各种其他复杂的内容,因此所有用于修复json的
sed
awk
ish类型的解决方案都失败或弄乱了其他内容。

不要使用
作为引号字符。使用其他内容:

with open('tmp', 'w') as fout:
    writer = csv.writer(fout, quotechar="'")

真的,这只是把事情整理一下。当你读回数据时,你首先需要“取消引用”“它通过
csv.reader
读取数据。这将返回您输入的有效字符串
json

Drop
quoting=csv.QUOTE_NONE
参数。对,但是json仍然会被QUOTE破坏。您不能将QUOTE字符更改为
?@qwwqwq,如果使用csv.reader,您将获得正确的json。您是对的,引发异常的另一个脚本没有使用csv.reader。。真是一团糟..将quotechar设置为除
'“
之外的任何值都可以解决此问题,我的另一个问题是读取此文件的另一个脚本没有使用
csv.reader
,这也解决了此问题
with open('tmp', 'w') as fout:
    writer = csv.writer(fout, quotechar="'")