如何在不使用pyCURL(请求)的情况下获取信息

时间:2016-12-20 13:54:03

标签: python curl

我需要实现以下卷曲:

curl -k https://somelinkhere/get_info -d auth_info='{"session_id":"blablablaidhere"}' -d params='{"id":"12345"}'

目前我有以下代码。它工作正常,但并不完全符合我的需要。我需要从回复中获取json内容,只需一个参数。

url = 'https://somelinkhere/get_info'
data = {'auth_info':'{"session_id":"blablablaidhere"}', 'params':'{"id":"12345"}'}
response = requests.post(url, data=data)
res = response.content
print res

现在它返回

'�Z[o�6�+���֖���ې�0�{h�`
                        AK�M�"����o�9�dI���t��@RI<��"�GD�D��.3MDeN��
                                                                           ��hͣw�fY)SW����`0�{��$���L��Zxvww����~�qA��(�u*#��݅Pɣ����Km���' 
etc. 

我需要的是输出

res['balance_info']['balance']

如果我从命令行启动cURL(上面提供),我有以下内容:

{"balance_info":{"enabled":"Y","balance":"0.55000","out_date_format":"MM-DD-YYYY","password":"12345","blocked":"N"

但是不知道如何使用python脚本获取此参数

3 个答案:

答案 0 :(得分:1)

与文档一样,content property给出了响应的二进制版本。 您需要使用.text获取请求的解码版本,然后将其加载为json。

val

现在您可以按以下方式访问您的密钥:

response = requests.post(url, data=data)
#load it as json
item = json.loads(response.text)

答案 1 :(得分:0)

以下是使用Requests的示例:

>>> import requests
>>> r = requests.post('https://somelinkhere/get_info',
    data = {"id": "12345"})

另请参阅virtualenv上的install Requests文档。

答案 2 :(得分:0)

你得到的是Gziped JSON字符串。 在阅读decompress之前,您必须json。然后你可以将响应用作python dict。

res = json.loads(zlib.decompress(response.content))

这样的东西