[問題] json轉csv遇到編碼問題
各位高手好
我在把json檔轉成csv檔時,遇到轉碼問題
我把原始json檔案讀進來,原始檔裡是好幾個documents全部擠在一行裡
所以用readline一口氣讀到jdata
jdata的長相是一個list,裡面是dictionaries, jdata=[{...},{...},{...}]
...
import json
with open('test.json', 'r') as fin:
jdata = json.loads(fin.readline())
...
dictionary裡的內容有中、英文,測試過裡面內容是unicode
...
print type(jdata[0]['title'])
>><type 'unicode'>
...
接著我試著先把第一個dictionary寫到csv檔裡
...
import csv
with open('write_test2.csv', 'w') as fout:
fieldnames = ['category','content','date','title','url','hitcount',\
'comp','keyw']
csvout = csv.DictWriter(fout,fieldnames=fieldnames)
csvout.writeheader()
csvout.writerow(newsdata[0])
...
在最後一行 writerow 出現 UnicodeEncodeError: 'ascii' codec can't encode
characters in position 0-3: ordinal not in range(128)
我查了官方 csv module不支援unicode
我現在不知道該在哪一步就該先轉碼,
然後轉什麼碼(encode('utf-8')?我只會這招 ><)
尤其是不知道怎麼處理dictionary,
難道要一個個抓出來改嗎?(jdata[0][category].encode('utf-8')
求高手指點 QQ
文長感謝耐心收看
附上原始檔連結
https://www.dropbox.com/s/yugkofeswqpdlhl/test.json?dl=0
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.73.127
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1461050226.A.638.html
※ 編輯: Anny19 (1.163.73.127), 04/19/2016 15:22:38
→
04/19 17:23, , 1F
04/19 17:23, 1F
→
04/19 22:00, , 2F
04/19 22:00, 2F
→
04/19 22:02, , 3F
04/19 22:02, 3F
→
04/19 23:45, , 4F
04/19 23:45, 4F
→
04/20 13:21, , 5F
04/20 13:21, 5F
→
04/20 15:21, , 6F
04/20 15:21, 6F
Python 近期熱門文章
PTT數位生活區 即時熱門文章