Python中如何打印POST请求的响应体为列表?仅获取到状态码200
解决Python打印POST请求响应体并以列表形式输出的问题
嘿,我来帮你搞定这个问题!你当前的代码有两个关键小问题,导致只能拿到状态码却没法获取响应体:
- 你需要发送的是POST请求,但代码里用了
requests.get(),得改成requests.post()才行; - 调用JSON解析的时候,你写的是
r.json(这只是引用方法对象),正确的用法是r.json()(加括号执行方法,返回解析后的JSON数据)。
结合你提供的API响应截图(假设响应体包含列表结构),这里给你一份完整的修正代码:
import requests # 替换为你的目标API地址 target_url = "你的POST请求URL" # 如果API需要请求体参数,在这里定义(根据实际需求调整) post_data = {"param1": "value1", "param2": "value2"} try: # 发送POST请求,自动将post_data转为JSON格式发送 response = requests.post(target_url, json=post_data) # 检查请求是否成功,非200状态码会抛出异常 response.raise_for_status() # 解析响应体为JSON数据 response_json = response.json() # 根据响应结构处理并以列表形式输出 if isinstance(response_json, list): print("响应体列表形式输出:") for item in response_json: print(f"- {item}") else: # 如果响应是字典,比如列表存放在"data"键下(根据截图结构调整键名) data_list = response_json.get("data", []) print("响应体中的列表内容:") for item in data_list: print(f"- {item}") except requests.exceptions.RequestException as e: print(f"请求过程中出现错误:{e}")
补充说明:
- 如果你的API不需要发送请求体参数,可以去掉
json=post_data这个参数,直接用requests.post(target_url); - 如果你不确定响应的结构,可以先打印
response_json看看具体内容,再调整提取列表的逻辑; response.raise_for_status()能帮你快速发现请求错误(比如404、500等状态码),方便排查问题。
内容的提问来源于stack exchange,提问作者Secure policy
相关产品推荐
相关产品推荐

