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

Python提取JSON的name与value字段输出异常问题排查

代码问题排查

原代码存在3个核心问题,导致输出不符合预期:

  • 仅提取了value字段,完全没有读取同层级的name字段,无法生成一一对应的键值对结构
  • 异常捕获逻辑和代码缩进存在问题:print(got)写在try...except块外部,一旦某条数据触发KeyError,got变量会保留上一轮循环的旧值,造成数据重复、遗漏,你当前输出缺失最后一条Prop 65声明就是这个原因导致的
  • 直接使用裸except:会吞掉所有类型的异常,出现非预期问题时完全无法定位报错原因
正确实现代码

如果只需要提取PKG&HAZMAT分组下的name-value配对,使用以下代码即可:

# 读取目标分组数据
pkg_hazmat_list = temp['specifications']['PKG&HAZMAT']
result = {}

for item in pkg_hazmat_list:
    # 提前校验字段存在,避免KeyError
    if 'name' in item and 'value' in item:
        result[item['name']] = item['value']

# 结构化输出结果
for field_name, field_value in result.items():
    print(f"{field_name}: {field_value}")

如果需要提取specifications下所有分组(包含MARKETING、PROP65、FP_PartType_F552等)的字段配对,增加一层外层循环即可:

spec_groups = temp['specifications']
result = {}

for group, item_list in spec_groups.items():
    for item in item_list:
        if 'name' in item and 'value' in item:
            result[item['name']] = item['value']

print(result)
预期输出效果

针对PKG&HAZMAT分组的完整输出如下,无数据遗漏:

VMRS: FLETP
Sales Unit: EA
Quantity per Application: 0
Height Each: 5.8
Width Each: 20.35
Length Each: 18.95
Weight Each: 14.47
Prop 65 Statement: WARNING Cancer and Reproductive Harm - www.P65Warnings.ca.gov
优化说明
  • 移除了不规范的裸异常捕获,改用字段存在性校验,不会吞掉非预期报错,也不会出现变量残留导致的脏数据问题
  • 同时读取name和value字段,直接生成标准字典结构,满足结构化提取要求
  • 代码缩进统一,逻辑分层清晰,后续新增提取规则时修改成本低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:21:33