You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python解析API响应数据并提取打印指定字段

Python解析API响应提取指定字段实现方案

实现逻辑

  • 目标响应为字典结构,核心数据存储在顶层键d对应的列表中
  • 列表内每个元素的n键对应需要输出的Name字段,v子字典中存储了需要提取的ch(涨跌额)、chp(涨跌幅)、volume(成交量)字段
  • 遍历列表逐元素提取字段,按指定格式拼接文本,条目之间用空行分隔后统一输出

完整可运行代码

import json
import requests

# 两种数据源适配方式二选一即可:
# 1. 若为接口直接请求:替换为实际接口地址即可
# api_resp = requests.get("你的接口请求地址").json()
# 2. 若为已拿到的字典/JSON字符串数据,直接传入即可
api_resp = {
    's': 'ok', 
    'd': [
        {'n': 'NSE:SBIN22JUL485CE', 's': 'ok', 'v': {'ch': -2.25, 'chp': -17.05, 'lp': 10.95, 'spread': 0.25, 'ask': 10.95, 'bid': 10.7, 'open_price': 11.5, 'high_price': 15.05, 'low_price': 10.45, 'prev_close_price': 13.2, 'volume': 1161000, 'short_name': 'SBIN22JUL485CE', 'exchange': 'NSE', 'description': 'NSE:SBIN22JUL485CE', 'original_name': 'NSE:SBIN22JUL485CE', 'symbol': 'NSE:SBIN22JUL485CE', 'fyToken': '1011220728149794', 'tt': 1657584000, 'cmd': {'t': 1657620000, 'o': 10.95, 'h': 10.95, 'l': 10.95, 'c': 10.95, 'v': 1500, 'tf': '15:30'}}, 
        {'n': 'NSE:SBIN22JUL480CE', 's': 'ok', 'v': {'ch': -2.65, 'chp': -16.46, 'lp': 13.45, 'spread': 0.1, 'ask':13.45, 'bid': 13.35, 'open_price': 15.3, 'high_price': 18.45, 'low_price': 12.9, 'prev_close_price': 16.1, 'volume': 4270500, 'short_name': 'SBIN22JUL480CE', 'exchange': 'NSE', 'description': 'NSE:SBIN22JUL480CE', 'original_name': 'NSE:SBIN22JUL480CE', 'symbol': 'NSE:SBIN22JUL480CE', 'fyToken': '1011220728128799', 'tt': 1657584000, 'cmd': {'t': 1657619940, 'o': 13.45, 'h': 13.45, 'l': 13.45, 'c': 13.45, 'v': 28500, 'tf': '15:29'}}
    ]
}

# 如果数据源是JSON字符串,先取消下行注释转为字典
# api_resp = json.loads(api_resp)

result_blocks = []
for item in api_resp.get('d', []):
    name = item.get('n', '')
    v_content = item.get('v', {})
    block = (
        f"Name= {name}\n"
        f"ch = {v_content.get('ch')}\n"
        f"chp = {v_content.get('chp')}\n"
        f"volume = {v_content.get('volume')}"
    )
    result_blocks.append(block)

print('\n\n'.join(result_blocks))

运行输出结果

代码运行后将完全匹配要求的输出格式:

Name= NSE:SBIN22JUL485CE
ch = -2.25
chp = -17.05
volume = 1161000

Name= NSE:SBIN22JUL480CE
ch = -2.65
chp = -16.46
volume = 4270500

优化说明

  • 代码使用dict.get()方法取值,接口偶发返回字段缺失时不会抛出KeyError中断程序
  • 适配了HTTP请求返回、本地字典、JSON字符串三种常见数据源场景,可直接复用

内容的提问来源于stack exchange,提问作者Welldata Solutions

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 09:54:27