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



我有一个现有的应用程序,它使用PyCurl通过REST类型接口下载压缩后的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',

所以:请求或urllib4(尝试了一点,但没有看到很多例子或很多文档)或其他东西?

任何指导或建议将是最受欢迎的!

如果用户请求将内容保存到一个文件(rfc2616)

报头中的文件名只不过是浏览器应该将其保存为的建议。那里没有其他文件。你得到的内容就是全部。content-encoding: gzip标头意味着页面的内容是gzip编码的传输,但requests模块将为您解码。

所以,如果它是HTML,而你期望的是JSON,你可能有错误的URL

最新更新