POST请求后无法获取响应字典值,求解决方案
解决POST请求后无法从响应中获取字典值的问题
你的问题出在**p.text返回的是JSON格式的字符串,不是Python字典**,所以直接用["message"]索引字符串会报错。另外注意代码里import request是拼写错误,应该是import requests。
有两种方法可以解决:
方法1:使用requests内置的json()方法(推荐)
直接调用响应对象的json()方法,它会自动将JSON字符串解析为Python字典:
import requests # 修正拼写错误 # 假设s是已初始化的session对象 p = s.post(url, data=post_json_data, headers=headers) posted_response = p.json() # 替换p.text为p.json() print(posted_response["message"]) if posted_response["message"] == "Job added": print("Success")
方法2:手动用json模块解析字符串
如果需要手动处理,可以导入json模块,用loads()方法将字符串转为字典:
import requests import json p = s.post(url, data=post_json_data, headers=headers) posted_response_str = p.text posted_response = json.loads(posted_response_str) # 解析字符串为字典 print(posted_response["message"]) if posted_response["message"] == "Job added": print("Success")
两种方法都能让你通过posted_response["message"]获取对应的值。
内容的提问来源于stack exchange,提问作者Ajay
相关产品推荐
相关产品推荐

