Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未知响应编码:由urequest.urlopen()收集_Python_Http_Encoding_Urllib - Fatal编程技术网

Python 未知响应编码:由urequest.urlopen()收集

Python 未知响应编码:由urequest.urlopen()收集,python,http,encoding,urllib,Python,Http,Encoding,Urllib,我正在编写一个web解析器,它可以登录服务器。请求收到以下响应: \x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xabVJ\xceOIU\xb2\xaaV*K\xcc)\x052\x94\xcc\x95t\x94\xe2\xf3\x12sA\xec\x10\x7foW?\xa5Z\x1d\xa5\x94\xc4\x92D\x90\xa2\x82\xc4"\xa0LIjQ\xb1\x92U^iN\x8e\x8eRI~vj\x1eP\xa9\xae\x99\xb1

我正在编写一个web解析器,它可以登录服务器。请求收到以下响应:

\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xabVJ\xceOIU\xb2\xaaV*K\xcc)\x052\x94\xcc\x95t\x94\xe2\xf3\x12sA\xec\x10\x7foW?\xa5Z\x1d\xa5\x94\xc4\x92D\x90\xa2\x82\xc4"\xa0LIjQ\xb1\x92U^iN\x8e\x8eRI~vj\x1eP\xa9\xae\x99\xb1\xa1\xa1\xa9\xb9\x85\x91\xa5\x89\x99\xb9\x81\x99\xb9\x99\x89\xa5)\xd0\xa4\xd2\xa2\x1c\x88J\xa0!\xb9\xa9\xc5\xc5\x89\xe9\xa90\x9dP.\xd4\xa4Z\x00\x94\x8a\xf6\xe1\x8a\x00\x00\x00
我尝试过大多数在线解码工具,但似乎都不管用

这里是响应头,如果它对任何人都有帮助的话

Server: nginx/1.6.0
Date: Sun, 16 Nov 2014 15:07:47 GMT
Content-Type: application/json;charset=UTF-8
Content-Length: 128
Connection: close
Cache-Control: no-cache
Expires: 0
Pragma: No-cache
Content-Encoding: gzip
可能是传输编码:分块意味着什么


你知道怎么破译吗?任何帮助都将不胜感激。

响应为JSON格式,并用gzip压缩。因此,要提取数据,请尝试以下方法:

>>> import json, gzip
>>> s = b"""\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x00\xabVJ\xceOIU\xb2\xaaV*K\xcc)\x052\x94\xcc\x95t\x94\xe2\xf3\x12sA\xec\x10\x7foW?\xa5Z\x1d\xa5\x94\xc4\x92D\x90\xa2\x82\xc4"\xa0LIjQ\xb1\x92U^iN\x8e\x8eRI~vj\x1eP\xa9\xae\x99\xb1\xa1\xa1\xa9\xb9\x85\x91\xa5\x89\x99\xb9\x81\x99\xb9\x99\x89\xa5)\xd0\xa4\xd2\xa2\x1c\x88J\xa0!\xb9\xa9\xc5\xc5\x89\xe9\xa90\x9dP.\xd4\xa4Z\x00\x94\x8a\xf6\xe1\x8a\x00\x00\x00"""
>>> with gzip.GzipFile(fileobj=io.BytesIO(s)) as gz:          
...     json.loads(gz.read().decode('utf-8'))
...                                                           
{u'messages': None, u'message': None, u'code': {u'value': u'7', u'_name': u'TOKEN'}, u'data': {u'url': None, u'token': u'-6311578294670676495', u'parameters': None}}                                                                                                                                         
这应该适用于Python2.7和Python3.x。仅对于Python3,它更简单一些:

>>> json.loads(gzip.decompress(s).decode('utf-8'))
{'code': {'_name': 'TOKEN', 'value': '7'}, 'messages': None, 'message': None, 'data': {'url': None, 'token': '-6311578294670676495', 'parameters': None}}

您的内容是根据内容编码进行压缩的