我正在尝试通过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
怎么回事,我该如何解决?
答案 0 :(得分:1)
看起来服务器由于某种原因正在发送压缩的响应(除非您明确设置了let agents : Agent[] = CSharpGetAgents();
头,否则它不应该这样做)。您可以调整代码以使用压缩响应,例如:
accept-encoding