如何使用Python{requests,urllib4,mechanize…}检索附加的Gzip JSON文件

如何使用Python{requests,urllib4,mechanize…}检索附加的Gzip JSON文件,python,json,gzip,Python,Json,Gzip,我有一个现有的应用程序,它使用PyCurl通过REST类型接口下载Gzip JSON数据。这项工作很好,但对于预期用途来说速度太慢 我正在尝试一个可以使用连接池的等效解决方案。我有一个处理请求的简单示例,但我不知道如何检索附带的gzip JSON文件,返回的头文件说它就在那里 我当前的示例代码: #!/usr/bin/python import requests headers = {"Authorization" : "XXX thisworksIgeta200Response",

我有一个现有的应用程序,它使用PyCurl通过REST类型接口下载Gzip JSON数据。这项工作很好,但对于预期用途来说速度太慢

我正在尝试一个可以使用连接池的等效解决方案。我有一个处理请求的简单示例,但我不知道如何检索附带的gzip JSON文件,返回的头文件说它就在那里

我当前的示例代码:

#!/usr/bin/python

import requests

headers = {"Authorization" :  "XXX thisworksIgeta200Response",
      "Content-type" : "application/json",
       "Accept" : "application/json"}

r = requests.get("https://longickyGUIDyURL.noname.com",headers=headers,verify=False,stream=True)

data = r.raw.read(decode_content=True)

print data
这将生成一个HTML页面,而不是我想要的JSON输出。相关返回的标题如下所示:

'content-disposition': 'attachment; filename="9d5c3c68-0e88-4b2d-88b9-94534b6cb80d"
'content-encoding': 'gzip',
所以:requests或urllib4尝试了一下,但没有看到很多示例或文档或其他东西

欢迎提供任何指导或建议

如果用户请求将内容保存到文件rfc2616中,则Content Disposition response header字段被提议作为源服务器建议默认文件名的一种方式

标题中的文件名只是建议浏览器将其保存为什么。那里没有其他文件。你得到的内容就是全部。content encoding:gzip头意味着页面的内容是为传输而进行gzip编码的,但是请求模块将为您解码


因此,如果是HTML,而您需要的是JSON,那么您可能有错误的URL。

事实上,我需要的是某种格式的XML,但response.text提供的是页面的HTML,而不是我所期望的数据,而且我从PyCurl实现中获得的数据是由xmltodict更改为JSON的,我忘记了。有没有其他的响应字段可以满足我的要求?问题是:gzip解码的内容去哪里了?请求文件说它会自动为你解码,但我找不到。response.content提供下载的HTML,而不是附加的Gzip XML。。。