Python JSON转储UnicodeDecodeError

Python JSON转储UnicodeDecodeError,python,json,unicode,Python,Json,Unicode,我目前有一个程序,可以从一个网站获取足球数据,并将其导入一个dict: dict5[name] = ['To: ' + toteam, 'From: ' + fromteam, 'Price: ' + price, 'Date: ' + newdate] 该网站使用葡萄牙语,本地编码为UTF-8。图腾、fromteam、price和dates都预先编码为UTF-8,只是与dict中的字符串串联在一起。当我尝试将它转储到类似这样的json文件时,程序运行良好,并毫无问题地打印到stdout w

我目前有一个程序,可以从一个网站获取足球数据,并将其导入一个
dict

 dict5[name] = ['To: ' + toteam, 'From: ' + fromteam, 'Price: ' + price, 'Date: ' + newdate]
该网站使用葡萄牙语,本地编码为UTF-8。图腾、fromteam、price和dates都预先编码为UTF-8,只是与dict中的字符串串联在一起。当我尝试将它转储到类似这样的json文件时,程序运行良好,并毫无问题地打印到stdout

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
这本质上是另一个程序的副本,从同一个站点抓取,使用相同的编码,但是其中一个工作正常

我觉得有一些我没有把握的东西。有人能解释一下吗

图腾、fromteam、price和日期都预先编码为utf-8


这是你的问题

总是有用的:以及如何用哪些数据重现这些数据?检查一下,如果
name
是bytestring,那么它也被编码为utf-8。顺便说一句,您可以使用
json.dump(dict5,f)
将它们解码为unicode,然后重新编码为本机utf-8进行测试。这是错的吗?我看不出这对倾销有什么影响json@user1549620:JSON与unicode一起工作;因此,传递给json模块的数据也必须是unicode。不要通过测试环传递utf-8编码。好的,我去掉了所有utf-8编码,它工作得很好。因此,作为一般规则,最好将其保存为unicode以用于json目的吗?最好将其保存为
unicode
以用于所有目的,除非需要编码。