在Python Django中从API的JSON响应提取数据并实现页面跳转
从Coinbase API响应提取字段并实现重定向
步骤1:解析JSON响应
先把API返回的文本转换成可操作的JSON对象(字典/哈希表),以Python的requests库为例,替换原本打印响应文本的逻辑:
import requests # 你的API调用代码 api_url = "https://api.coinbase.com/v2/charges" headers = {"Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json"} payload = {"name": "你的商品", "description": "商品描述", "local_price": {"amount": "10.00", "currency": "CNY"}} response = requests.post(api_url, json=payload, headers=headers) # 解析JSON响应(替代print(response.text)) response_data = response.json()
步骤2:安全提取目标字段
Coinbase的Charge响应中,hosted_url和code嵌套在data节点下,用安全访问方式提取,避免字段不存在导致报错:
# 提取hosted_url和code,优先取hosted_url hosted_url = response_data.get("data", {}).get("hosted_url") code = response_data.get("data", {}).get("code") redirect_target = hosted_url or code
步骤3:实现页面重定向
根据你使用的后端框架,选择对应的重定向方式:
Flask(Python)
from flask import redirect if redirect_target: return redirect(redirect_target) else: return "无法获取跳转链接", 500
Express(Node.js)
// 假设已将API响应解析为responseData const hostedUrl = responseData?.data?.hosted_url; const code = responseData?.data?.code; const redirectTarget = hostedUrl || code; if (redirectTarget) { res.redirect(redirectTarget); } else { res.status(500).send("无法获取跳转链接"); }
关键注意事项
- 必须处理字段不存在的情况,用
get方法(Python)或可选链?.(JS)避免程序崩溃。 - 确认API权限配置正确,沙箱环境和生产环境的响应结构一致,但调用域名不同。
- 不要在前端直接调用Coinbase API,避免暴露API密钥,建议通过后端代理请求。
内容的提问来源于stack exchange,提问作者Fors1t
相关产品推荐
相关产品推荐

