如何将 request.data 转换为 dict? [复制]
Posted
技术标签:
【中文标题】如何将 request.data 转换为 dict? [复制]【英文标题】:How to convert request.data to dict? [duplicate] 【发布时间】:2018-08-02 16:45:18 【问题描述】:我尝试使用这一行(请求库)POST 请求从客户端获取 JSON 数据:
request.data
如何将其转换为字典?
有效:
response_data = request.get_json()
但是如何将其转换为 dict?
【问题讨论】:
试试request.json()
,假设request是response的名字...
您能否提供一些您正在尝试做的细节。
如果你的响应文本是 json 使用 dict_data = json.loads(json_str)
我试过这个:`response_data = request.json() print(response_data)` 得到:`object is not callable"`
【参考方案1】:
编辑:对于发布请求:
import requests
import json
url = "https://jsonplaceholder.typicode.com/posts/"
payload =
"userId": 10,
"id": 901,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
headers =
'content-type': "application/json",
'cache-control': "no-cache",
'postman-token': "c71c65a6-07f4-a2a4-a6f8-dca3fd706a7a"
response = requests.request("POST", url, data=json.dumps(payload), headers=headers)
print(type(response.json()))
类'dict'
你可以这样使用:
import requests
url = "https://api.icndb.com/jokes/random"
headers =
'cache-control': "no-cache",
'postman-token': "77047c8b-caed-2b2c-ab33-dbddf52a7a9f"
response = requests.request("GET", url, headers=headers)
print(type(response.json()))
类'dict'
【讨论】:
我发送 POST 请求【参考方案2】:import json
response_data = json.loads(response.text)
result = response_data.get('result')
您需要反序列化 response.text
以将其作为字典,然后使用相应的密钥用户 .get
。 result
是上述示例中的一个键。 response
是 url 调用的响应。
【讨论】:
object has no attribute 'text'"
您的要求是这样的吗? response = requests.request("GET", url, data=payload, headers=headers, params=querystring)
不,我使用 Flask 和 POST 方法
我有端点,我需要从客户端获取 POST 数据:@app.route('/protocol/<token>', methods=['POST'])
试试这个。 data = request.json
request.json
是一个字典。以上是关于如何将 request.data 转换为 dict? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何将谷歌云自然语言实体情感响应转换为 Python 中的 JSON/dict?