Python Json解码错误-Json.loads()上出现奇怪字符,而不是文本
我正在尝试对进行API调用 我的代码片段-Python Json解码错误-Json.loads()上出现奇怪字符,而不是文本,python,json,Python,Json,我正在尝试对进行API调用 我的代码片段- url = 'http://api.stackoverflow.com/1.1/badges/name' f = urllib2.urlopen(url) content = f.read() jsonobj = json.loads(content) print jsonobj 这给了我一个错误- ValueError:无法解码任何JSON对象 当我试图从上面的URL加载json对象时,它显示了乱码字符。您可以在此处看到输出- 如果转到,则文本通常
url = 'http://api.stackoverflow.com/1.1/badges/name'
f = urllib2.urlopen(url)
content = f.read()
jsonobj = json.loads(content)
print jsonobj
这给了我一个错误-
ValueError:无法解码任何JSON对象
当我试图从上面的URL加载json对象时,它显示了乱码字符。您可以在此处看到输出-
如果转到,则文本通常显示在浏览器窗口中
我尝试添加UTF-8编码-
jsonobj = json.loads(content, encoding = 'UTF-8')
但它仍然给出了相同的错误 根据返回的信息进行压缩。您必须解压缩二进制数据才能获得实际的JSON。您可以使用gzip
和StringIO
模块执行此操作:
url = urllib2.urlopen('http://api.stackoverflow.com/1.1/badges/name')
zippedContents = url.read()
sio = StringIO.StringIO(zippedContents)
gz = gzip.GzipFile(fileobj=sio)
print gz.read()
根据返回的信息进行压缩。您必须解压缩二进制数据才能获得实际的JSON。您可以使用gzip
和StringIO
模块执行此操作:
url = urllib2.urlopen('http://api.stackoverflow.com/1.1/badges/name')
zippedContents = url.read()
sio = StringIO.StringIO(zippedContents)
gz = gzip.GzipFile(fileobj=sio)
print gz.read()