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

使用Python解析API返回的嵌套JSON字典,提取id和symbol存入列表

问题原因

你原代码的问题出在遍历对象错误:

  • data是外层字典,直接遍历for x in data相当于遍历字典的两个键status、data,所以只会循环2次
  • 每次循环你都固定取data['data'][0]['id'],也就是数组第一个元素的id,所以重复输出两次1

正确实现代码

方式1:基础循环写法(可读性高)

import json

# 初始化存储结果的列表
result_list = []

try:
    response = session.get(url, params=parameters)
    # requests内置json解析方法,无需手动loads响应文本
    data = response.json()
    # 正确遍历对象是data字段对应的列表
    for item in data['data']:
        # 提取需要的字段,可按需求选择存储格式
        # 格式1:存为字典,方便后续按key取值
        result_list.append({
            'id': item['id'],
            'symbol': item['symbol']
        })
        # 格式2:存为元组 (id, symbol),占用空间更小
        # result_list.append( (item['id'], item['symbol']) )
except Exception as e:
    print(f"请求或解析出错:{e}")

方式2:列表推导式写法(更简洁)

如果不需要额外逻辑处理,直接提取可以用列表推导式简化代码:

# 存字典的推导式
result_list = [{'id': item['id'], 'symbol': item['symbol']} for item in data['data']]

# 存元组的推导式
# result_list = [(item['id'], item['symbol']) for item in data['data']]

健壮性优化:可以提前判断字段是否存在,避免接口返回结构变化时报错:

if 'data' in data and isinstance(data['data'], list):
    for item in data['data']:
        # 提取逻辑

内容的提问来源于stack exchange,提问作者Sanko Hunbucse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:02