我現在有一個計劃,從網站和端口它抓住足球數據爲dict
:JSON轉儲的UnicodeDecodeError
dict5[name] = ['To: ' + toteam, 'From: ' + fromteam, 'Price: ' + price, 'Date: ' + newdate]
該網站是在葡萄牙和本地編碼是UTF-8。該toteam,fromteam,價格和日期都預編碼爲UTF-8,只是在dict
字符串連接在一起。該程序運行得很好,並打印到stdout
沒有問題,當我嘗試它轉儲到這樣一個JSON文件...
with open('test.json', 'w') as f:
f.write(json.dumps(dict5, indent=2))
...它與下面的錯誤出現:
Traceback:....
C:\Python27\lib\json\__init__.py, line 238, in dumps
**kw).encode(obj)
C:\Python27\lib\json\encoder.py, line 203, in encode
chunks = list(chunks)
C:\Python27\lib\json\encoder.py, line 428, in _iterencode
for chunk in _iterencode_dict(o, _current_indent_level):
C:\Python27\lib\json\encoder.py, line 381, in _iterencode_dict
yield_encoder(key)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 0: invalid continuation byte
這主要是另一個程序從同一網站抓取的副本,具有相同的編碼,但是一個正常工作。
我覺得有,我不是抓的unicode岬的一些元素。任何人都可以對此有所瞭解嗎?
總是有用的:http://bit.ly/unipain – Daenyth 2012-08-01 19:36:41
而如何重現與數據? – 2012-08-01 19:36:55
檢查如果'name'是一個字節串那麼它也被編碼爲UTF-8。順便說一句,你可以使用'json.dump(dict5,f)' – jfs 2012-08-01 20:08:31