python - POST:是否需要序列化 JSON 数据
问题描述
我的 Rest API 在发布 JSON 数据时运行良好。
我在服务器上使用它:
req = request.get_json()
dicti = json.loads(req)
#It(dicti) is then processed.
在客户端,我这样进行(使用 python 请求):
dat = {'a':1, 'b':2}
serialised_dat = json.dumps(dat)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
requests.post("myurl", json = serialised_dat, headers = headers)
而且,一切正常。但是,当我从其他客户端(如 insomnia)测试我的 Rest API 时,
我得到了内部服务器错误,这很公平,因为我粘贴在那里的 json 没有序列化。
我是否需要序列化我的 json,然后将其粘贴到其他客户端才能成功?或者
上面的方法本身是我用来将json发送到烧瓶的错误吗?
解决方案
参数的值json
应该是一个将为您序列化的对象。
requests.post("myurl", json=dat, headers=headers)
如果您有预序列化的数据,请改用data
关键字参数。
requests.post("myurl", data=json.dumps(dat), headers=headers)
推荐阅读
- asp.net-core - Azure Devops Oauth 身份验证:无法获取访问令牌(BadRequest 无法反序列化 JsonWebToken 对象)
- php - 如何在不使用任何扩展的情况下在 php 中并行运行方法?
- c# - 我如何理解 c# 项目基于什么模板
- javascript - 从一系列 ArrayBuffer 创建 webm 视频 blob
- r - 识别异常值并仅在 R 中使用 groupby 多列处理异常值?
- reactjs - 在 redux 中处理获取状态的最佳方法
- c - 如何使用滚动条在 GTK3 区域中绘制
- c - 您可以在 Arduino IDE 中打开和编辑 .c 文件吗?然后将它们加载到 Arduino 板上
- javascript - 如何使用 getJSON 填充下拉选择元素
- amazon-web-services - Do I have to use AppSync for apollo graphql in lambda?