我使用python csv
模塊創建一個csv,其中一些值爲json
字符串。然而,csv
模塊的報價是完全打破了JSON:使用JSON Python CSV模塊問題
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)
而且csv
對象轉向引述關:
import csv
import json
writer = csv.writer(open('tmp', 'w'), quoting=csv.QUOTE_NONE)
writer.writerow([json.dumps([{u'a' : u'b'}])])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
_csv.Error: need to escape, but no escapechar set
有沒有其他人遇到過這個?難道json
和csv
只是不能很好的一起玩? (這不是我的想法,json
stirngs csv
文件..我現在只需要處理)。不幸的是,這些CSV的我創建包含散列摘要和各種其他複雜的東西,這樣所有的sed
或awk
ISH型解決方案來解決我嘗試都失敗或搞砸了別的東西的JSON ..
刪除'quoting = csv.QUOTE_NONE'參數。 – falsetru
對,但是json仍然被引用破壞。 – qwwqwwq
難道你不能將引號字符改爲'''? – mgilson