使用POST / REST发送json的脚本和python中的请求不起作用

时间:2015-06-29 19:30:07

标签: python json rest post

我正在尝试使用REST在POST方法中发送json,但是我收到了错误:

    "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)

我看不出我的剧本有什么问题

1 个答案:

答案 0 :(得分:0)

尝试将data参数而不是params参数传递给post方法。请求想要url编码你想要json数据的params。所以像这样:

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