使用Python

时间:2017-02-28 17:05:23

标签: python python-requests

我在下面使用Python脚本连接到受登录保护的API。

import requests

url = 'https://api.json'
header = {'Content-Type': 'application/x-www-form-urlencoded'}
login = ('kjji@snm.com', 'xxxxx')
mnem = 'inputRequests':'{'inputRequests':'[{'function':'GDSP','identifier':'ibm','mnemonic':'IQ_TOTAL_REV'}]}}

    r = requests.post(url, auth=login, data=mnem, headers=header)

    print(r.json())

建立连接但由于数据请求的格式,我从API收到错误。原始格式​​如下所示。我无法找到一种方法在上面的mnem中输入:

inputRequests={inputRequests:
 [
  {function:"xxx",identifier:"xxx",mnemonic:"xxx"},
   ]
}

给出的错误是

C:\Users\xxx\Desktop>pie.py
  File "C:\Users\xxx\Desktop\pie.py", line 6
    mnem={'inputRequests':'{'inputRequests':'[{'function':'xxx','identifier':'xx','mnemonic':'xxx'}]}}
                                         ^
SyntaxError: invalid syntax

我不确定如何从这里开始。我在请求文档中找不到任何指向如何在数据字段中插入多个变量的内容。

2 个答案:

答案 0 :(得分:0)

Python中的requests模块接收protogen Python dict作为post请求中的JSON数据,但不是字符串。因此,您可以尝试像这样定义mnem

mnem = {
    'inputRequests':[
        {'function':'GDSP',
         'identifier':'ibm',
         'mnemonic':'IQ_TOTAL_REV'
        }
   ]}

答案 1 :(得分:0)

data参数应该是字典。

因此要通过三个参数尝试使用:

mnem = {'function':'GDSP','identifier':'ibm','mnemonic':'IQ_TOTAL_REV'}