0

我目前有一个程序可以从网站上抓取足球数据并将其移植到dict

 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 元素。任何人都可以对此有所了解吗?

4

1 回答 1

2

toteam、fromteam、价格和日期都预编码为 utf-8

,有你的问题。请改用unicodes。

于 2012-08-01T19:36:21.200 回答