2016-02-13 58 views
0

我工作的一個項目,包括Verizon的Thingspace的REST API到Python程序。使用JSON數據問題在Python

一位同事在捲曲的作品爲例(我不熟悉的捲曲所以我試圖轉換成Python)爲我提供。

curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" --header "VZ-M2M-Token: 621d9779-f8bc-4fe9-91dd-b726c52e7117" --header "Authorization: Bearer 89ba225e1438e95bd05c3cc288d3591" -d "{\"accountName\": \"TestAccount-1\"}" https://thingspace.verizon.com/api/m2m/v1/devices/actions/list 

我想把這個完全相同的請求轉換成Python函數。下面是我有:

import requests 

def getList(token): 
    url = "https://thingspace.verizon.com/api/m2m/v1/devices/actions/list" 
    headers = { 
       "Content-Type": "application/json", 
       "Accept": "application/json", 
       "Authorization": "Bearer 89ba225e1438e95bd05c3cc288d3591", 
       "VZ-M2M-Token": "f7ef3a35-abb6-418b-92d4-7cdac8b06c5f", 
      } 
    data = {"accountName": "TestAccount-1"} 

    print data 

    deviceList = requests.post(url, data=data, headers=headers) 

    print headers 
    print (deviceList.status_code, deviceList.reason, deviceList.text) 
    return deviceList 

當我運行它,我得到的JSON以下錯誤消息回:

(400, '錯誤的請求', U'{ 「錯誤碼」:」 REQUEST_FAILED.UnexpectedError 「 」的errorMessage「:」 難道 無法讀取文件:無法識別的記號\ '帳戶名\':期待 (\ '真正的\',\ '假\' 或\ '空\')\ n在[來源: [email protected];行:1,柱:13];嵌套 例外是com.fasterxml.jackson.core.JsonParseException: 無法識別的令牌\ '帳戶名\':期待(\ '真\' \ '假\' 或\ '空\')\ n在[來源:[email protected]; 線:1,列:13]「}」)

您可以參考這裏的API的信息:https://thingspace.verizon.com/developer/apis#/Connectivity%20Management/API%20Reference/Retrieve%20Device%20Information.html

我相信有可能是壞了我的JSON字符串,但我需要另一套的眼睛。

回答

0

data不會自動轉換爲JSON,你必須明確地做到這一點:

deviceList = requests.post(url, data=json.dumps(data), headers=headers) 
+0

嗯,這是快速,正確率100%太謝謝你了! –