私は現在、ウェブサイトからサッカーのデータを取得し、それを次のように移植するプログラムを持っていますdict
:
dict5[name] = ['To: ' + toteam, 'From: ' + fromteam, 'Price: ' + price, 'Date: ' + newdate]
Web サイトはポルトガル語で、ネイティブ エンコーディングは 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
これは本質的に、同じサイトから取得した別のプログラムのコピーであり、同じエンコーディングを使用していますが、そのプログラムは正常に動作します。
私が把握していないユニコードらしさの要素があるように感じます。誰でもこれに光を当てることができますか?