2017-02-28 58 views
0

我使用下面的Python脚本连接到登录受保护的API。requests.post与Python

import requests 

url = 'https://api.json' 
header = {'Content-Type': 'application/x-www-form-urlencoded'} 
login = ('[email protected]', '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错误request.The原始格式是这里的下方。我不能找到一种方法,在这里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 

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

+0

对不起,这是最新的尝试之一。我把下面的所有内容都包含进去了,但是这仍然不起作用:mnem = {'inputRequests':{'inputRequests':[{'function':'GDSP','identifier':'ibm','mnemonic':' IQ_TOTAL_REV'}]}} –

+2

请包括您收到的错误消息。 – iled

回答

0

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

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

这会触发API的错误:此错误表示助记符存在错误。我应该提到,我通过邮递员以相同的请求连接到API,我得到了一个结果,所以上面的输入请求是有效的。 \ Users \ xxx \ Desktop> pie.py {'Errors':'Error Processing the Request'} –

+0

也许是这样的:'mnem = {'inputRequests':{ , '标识符': 'IBM', '助记符': 'IQ_TOTAL_REV' } ]}}' – LuCima

+0

相同的错误如上{ '错误': '错误处理请求' –

0

data参数应该是一本字典。

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

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

这会触发API的错误:此错误表示助记符存在错误,因为我错过了'输入请求'部分\ Users \ xxx \ Desktop>派。py {'错误':'处理请求时出错'} –