【问题标题】:Script to send json using POST/REST and requests in python doesn't work使用 POST/REST 发送 json 的脚本和 python 中的请求不起作用
【发布时间】:2015-06-29 19:30:07
【问题描述】:

我正在尝试使用 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)

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

【问题讨论】:

  • 我不明白那个“基础”sn-p 是什么,或者它与您的发布脚本有什么关系。
  • 脚本只是在基中插入键和值。
  • 工作时,我会循环插入特定数量的数据。

标签: python json rest post


【解决方案1】:

尝试将data 参数而不是params 参数传递给post 方法。 requests 想要在你想要 json 数据的地方对参数进行 url 编码。所以是这样的:

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

【讨论】:

  • 执行此操作时出现错误 "Invalid param: {\"value\": {\"item\": \"jorge\"}}"
  • 当我删除 json.dumps 时,我得到了这个:无法解析 JSON 数据:期望值:第 1 行第 1 列(字符 0)"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-15
  • 2019-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多