在Windows上为UnicodeDecodeError,但在Mac上运行完全相同的代码时则不会

时间:2019-05-21 21:46:49

标签: python python-3.x python-unicode

我正在尝试通过API下载json数据。代码如下:

import urllib.request, ssl, json

context = ssl._create_unverified_context()
rsbURL = "https://rsbuddy.com/exchange/summary.json"
with urllib.request.urlopen(rsbURL, context=context) as url:
    data = json.loads(url.read().decode('UTF-8'))

此代码在我的Mac上运行正常,我确认data是应该的— json字符串。但是,当我在Windows上运行完全相同的代码时,出现此错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

怎么回事,我该如何解决?

1 个答案:

答案 0 :(得分:1)

看起来服务器由于某种原因正在发送压缩的响应(除非您明确设置了let agents : Agent[] = CSharpGetAgents(); 头,否则它不应该这样做)。您可以调整代码以使用压缩响应,例如:

accept-encoding