首页 > 解决方案 > 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发送到烧瓶的错误吗?

标签: pythonjsonflask-restful

解决方案


参数的值json应该是一个将为您序列化的对象。

requests.post("myurl", json=dat, headers=headers)

如果您有预序列化的数据,请改用data关键字参数。

requests.post("myurl", data=json.dumps(dat), headers=headers)

推荐阅读