0

私は現在、ウェブサイトからサッカーのデータを取得し、それを次のように移植するプログラムを持っています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

これは本質的に、同じサイトから取得した別のプログラムのコピーであり、同じエンコーディングを使用していますが、そのプログラムは正常に動作します。

私が把握していないユニコードらしさの要素があるように感じます。誰でもこれに光を当てることができますか?

4

1 に答える 1

2

toteam、fromteam、価格、および日付はすべて、utf-8 として事前にエンコードされています

さて、あなたの問題があります。代わりに s を使用してください。unicode

于 2012-08-01T19:36:21.200 に答える