【问题标题】:How to use JSON on POST in Python Requests如何在 Python 请求中的 POST 上使用 JSON
【发布时间】:2021-05-06 08:20:37
【问题描述】:

我如何在 POST 上使用这个 JSON 数据

{"data":"{\"email\":\"anything65@gmail.com\",\"agreedToTerms\":true,\"profile\":{\"profileTypeID\":1,\"agreedToTerms\":true,\"firstName\":\"name\",\"lastName\":\"dfghjefws\",\"errors\":{}}}"}

这是我目前的代码,我每次都会收到“消息:服务器错误”

data_profile2 = {"data":"{\"email\":\"anything65@gmail.com\",\"agreedToTerms\":true,\"profile\":{\"profileTypeID\":2,\"agreedToTerms\":true,\"firstName\":\"name\",\"lastName\":\"dfgh jefws\",\"errors\":{}}}"}
reqeust_1 = session.post(url_profile,headers=headers_profile, json=data_profile2)

【问题讨论】:

  • 在 JSON 数据中使用 \ before " 的目的是什么?
  • 您的代码对于某些网站可能完全可以接受,服务器错误表明它与接收数据的网站有问题。
  • 为什么你的 json 中包含一个 json 转储?这是服务器期望的吗?否则,只需将其作为常规字典发送( {"data":{"email":"..."}} )
  • 我是 python 的初学者,我确实从网站(调试网络)复制了 json 数据,但我不能在 POST 中使用它,它在响应中给我“服务器错误”
  • 你能给我一个如何在这个json数据上使用dict的例子吗

标签: python json http-post


【解决方案1】:

requests doc

POST request

import requests

payload= {"data": {"email": "anything65@gmail.com", "agreedToTerms": True , "profile": {"profileTypeID": 1,"agreedToTerms": True, "firstName": "name", "lastName": "dfghjefws", "errors": {}}}}
request_1 = requests.get(url_profile, headers=headers_profile, data=payload)

更新

如果您使用json=payload,您的Content-Type 标题将自动为application/json。 我认为 session 对于您想要做的事情不是强制性的。 Sessions 在许多请求中保留参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 2023-01-20
    • 2011-05-04
    • 1970-01-01
    • 2020-08-11
    • 2021-01-10
    • 2018-02-07
    相关资源
    最近更新 更多