【发布时间】:2014-07-03 13:03:41
【问题描述】:
这个问题与我最近报告的堆栈溢出 API 的更改有关 here。在那个问题中,我收到了一个 response 似乎可以正常工作,但实际上我无法使其正常工作。
这是我的代码
import requests
import json
url="https://api.stackexchange.com/2.2/sites/?filter=%21%2AL1%2AAY-85YllAr2%29&pagesize=1&page=1"
response = requests.get(url)
response.text
这个输出
u'\ufeff{"items":[{"site_state":"normal","api_site_parameter":"stackoverflow","name":"Stack Overflow"}],"has_more":true,"quota_max":300,"quota_remaining":294}'
前导 u'\ufeff 表示如果我这样做 response.json() 我会得到一个 ValueError: No JSON object could be decoded
给我的建议是使用decode('utf-8-sig')。但是,我似乎也无法完成这项工作:
尝试1:
response.text.decode('utf-8-sig')
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 0: ordinal not in range(128)
尝试2:
json.loads(response.text).decode('utf-8-sig')
ValueError: No JSON object could be decoded
删除前导u'\ufeff的适当方法是什么?
【问题讨论】: