【问题标题】:POST: Is it necessary to serialise the JSON dataPOST:是否需要序列化 ​​JSON 数据
【发布时间】:2020-01-10 00:37:09
【问题描述】:

我的 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)

而且,一切正常。但是,当我从失眠等其他客户端测试我的 Rest API 时,
我收到内部服务器错误,这很公平,因为我粘贴在那里的 json 未序列化。
我是否需要序列化我的 json,然后将其粘贴到其他客户端才能成功?或
上面我用来向flask发送json的方法本身是不是错了?

【问题讨论】:

    标签: python json flask-restful


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 感谢您的回答,先生。每个包含 JSON 有效负载的 POST 都将始终被序列化,并且要处理它(在烧瓶上),我需要使用 loads() 将其转换为字典。无论客户端/语言如何,我在服务器上对任何 POST 请求的使用 loads() 是否正确?如果是,Insomnia 给了我错误,我将原始 json 粘贴到那里并使用参数 json = dat
    猜你喜欢
    • 2010-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    相关资源
    最近更新 更多