2014-10-17 128 views
1

隨着Firefox插件「是HttpFox」我越來越POST請求,看起來像這樣:JSON發送POST請求與蟒蛇

{'json':'{"command":"SEARCH","data":{"someData":"someValue","otherData":"otherData"}}'} 

現在我需要發送一個HTTP請求建立與蟒蛇得到相同數據,我會通過瀏覽器。見代碼:

headers = {'Content-type': 'application/json; charset=utf-8'} 
payload = ? 
req = requests.post(url, data=json.dumps(payload), headers = headers) 

我的問題是: 我不知道如何建立有效載荷。它也應該是一本字典,但由於POST類型與HttpFox一起交付,所以我很困惑。主詞典中有兩個字典。

我該如何處理? 感謝任何幫助。

+0

外部的'json'鍵可能不是JSON有效載荷的一部分。例如,它不是有效的JSON,因爲它使用單引號。你確定它不只是顯示的價值。 – 2014-10-17 10:08:26

回答

0

好吧,我找到了解決辦法:

有必要建立一個字典是這樣的:

valueString = """{"command":"SEARCH","data":{"someData":"someValue","otherData":"otherData"}}""" 
/// the """ ensures that the whole text between """ is handled as a string. 

payload = {'json': valueString} 

鍵 'JSON' requieres的字符串。在這種情況下,字符串看起來像一本字典。

就是這樣。

+0

您現在在您的JSON有效內容中創建了嵌套*字符串*,而不是嵌套對象。 – 2014-10-17 10:07:33

+0

你也可以定義'values = {「command」:「SEARCH」,「data」:{「someData」:「someValue」,「otherData」:「otherData」}}'payload = {'json': json.dumps(值)' – 2014-10-17 14:22:14