2015-06-29 30 views
0

我試圖使用REST來發送在POST方法的JSON發送JSON,但我得到的錯誤:腳本使用POST/REST和蟒蛇請求不起作用

"Could not parse JSON data: Expecting value: line 1 column 1 
    (char 0)", "status": 500, "type": "ValueError", 
    "request": {"client_addr": "127.0.0.1", 
    "user_agent": "python-requests/2.3.0 CPython/3.4.2 Linux/3.16.0-41-generic", 
    "method": "POST", "path": "/api/adley/doc"}} 
    ) 

我想修復,使用json.dumps或json.loads,但似乎沒有任何工作。

我需要發送一個鍵和兩個值。這是基礎:

{ 
metadata: { 
    idx_exp: false, 
    idx_exp_time: 0, 
    file_ext: false, 
    password: "", 
    description: "base de teste", 
    idx_exp_url: "", 
    model: { 
     item: "Text" 
    }, 
    dt_base: "29/06/2015 14:47:10", 
    name: "adley", 
    id_base: 5, 
    file_ext_time: 0, 
    }, 
    content: [ 
    { 
    field: { 
      required: false, 
      multivalued: false, 
      alias: "Texto", 
      datatype: "Text", 
      name: "item", 
      indices: [ 
       "Ordenado" 
      ], 
      description: "placeholder" 
     } 
    } 
    ] 
} 

我來發個帖子腳本:

import requests, json 
url = "http://127.0.0.1/api/adley/doc" 
json_data = {'value':{'item':'test'}} 
response = requests.post(url, params=json_data) 
print(response.text) 

我看不出有什麼不對我的腳本

+0

我不明白什麼是「基本」片段,或它與你的發佈腳本有什麼關係。 –

+0

腳本只是在基礎中插入鍵和值。 – Adley

+0

工作時,我會做一個循環來插入一個特定數量的數據。 – Adley

回答

0

嘗試傳遞data參數,而不是params參數到post方法。請求希望在需要json數據的地方對網址進行編碼。所以像這樣:

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

我得到錯誤,當這樣做「無效的參數:{\」值\「:{\」item \「:\」jorge \「}}」 – Adley

+0

當我刪除json.dumps,我得到這個:無法解析JSON數據:期望值:第1行第1列(char 0)「 – Adley