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

如何移除嵌套JSON冗余键?Python临时修复JSON格式问题

修复嵌套的derivationValue字段格式问题

最近碰到个JSON格式不匹配的问题:原本预期derivationValue是一个直接的取值,但实际返回的却是嵌套的键值对,多了一层冗余的键。举个实际例子:

原始不符合要求的JSON:

{ "derivationName": "other_lob_subcd", "derivationValue": { "OOP3": "TENANT" } }

我们需要把它转换成两种合规格式之一:

  1. 直接提取嵌套里的值:
    { "derivationName": "other_lob_subcd", "derivationValue": "TENANT" }
    
  2. 合并键值为字符串(比如键值用分隔符拼接):
    { "derivationName": "other_lob_subcd", "derivationValue": "OOP3:TENANT" }
    

基于@Diana Ayala的思路,我调整了代码来处理这种可变键的情况——毕竟我们没法提前知道嵌套里的键叫什么。这里给出修正后的可行代码:

# 遍历结果中的每个推导输出项
for item in data['mcsResults']['derivationsOutput']:
    # 检查当前项的derivationValue是否是嵌套字典
    if isinstance(item['derivationValue'], dict):
        # 方案1:提取嵌套字典里的第一个值(适配单键值对场景)
        item['derivationValue'] = next(iter(item['derivationValue'].values()))
        
        # 如果需要方案2:合并键和值为字符串,替换上面一行为下面这行
        # item['derivationValue'] = ":".join(next(iter(item['derivationValue'].items())))

代码说明:

  • 首先直接遍历derivationsOutput列表里的每个元素(原代码的for k,v in ...写法有误,因为这里是列表而非字典的键值对集合)
  • 用isinstance判断derivationValue是否为字典类型,避免误处理正常的直接取值
  • 用next(iter(dict.values()))可以快速获取嵌套字典的第一个值,不管键是什么名字,完美适配可变键的场景
  • 如果需要合并键值,就用":".join(next(iter(dict.items())))把键和值用分隔符拼接成字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:34:09