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

Python如何在JSON字典列表中依据同字典属性匹配提取目标值

解决思路

你当前的问题本质是attributes数组的元素数量、顺序不固定,用固定下标[5]取值会出现错位,改为遍历每个attributes元素匹配id=5的项再取值即可。

修正后代码
import json
import pandas as pd


with open('fulldump.json', 'r') as f:
    data = json.load(f)

table = []
for entry in data['objectEntries']:
    name = entry['name']
    target_val = None
    # 遍历属性列表匹配id=5的项
    for attr in entry['attributes']:
        # 兼容JSON示例中出现的大小写Id两种写法
        if attr.get('id') == 5 or attr.get('Id') == 5:
            # 非空判断避免KeyError
            if 'subValue' in attr and len(attr['subValue']) > 0:
                target_val = attr['subValue'][0].get('displayValue')
            break
    table.append([name, target_val])

df = pd.DataFrame(table, columns=['Name', 'Get'])
注意事项
  • 若你的实际JSON数据中id字段均为小写,可删除代码中or attr.get('Id') == 5的判断逻辑
  • 代码中增加了多层非空判断,避免subValue字段不存在、subValue为空数组时程序报错
  • 未找到id=5的属性项时,对应的Get列会填充None,可根据需求替换为自定义默认值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:42:04