2017-02-28 26 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 {'錯誤':'處理請求時出錯'} –

相關問題