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

如何用Python将JSON中FEE_*字段转为指定字典格式?

问题描述

我有如下JSON数据:

[
  {
    "TX_ID": "C592096166066790609734",
    "FEE_1": 0.25,
    "FEE_7": 0.95,
    "USAGE": "Yzua12"
  },
  {
    "TX_ID": "C636460166108115381222",
    "FEE_1": 0.35,
    "FEE_3": 1.39,
    "USAGE": "Yzua13"
  }
]

需要用Python处理该数据,将所有以FEE_开头的字段的值转换为{"set": 原值}的字典格式,TX_ID和USAGE字段保持原有格式不变,预期结果如下:

[
  {
    "TX_ID": "C592096166066790609734",
    "FEE_1": {"set":0.25},
    "FEE_7": {"set":0.95},
    "USAGE": "Yzua12"
  },
  {
    "TX_ID": "C636460166108115381222",
    "FEE_1": {"set":0.35},
    "FEE_3": {"set":1.39},
    "USAGE": "Yzua13"
  }
]  
解决方案

处理代码

import json

# 原始JSON数据(若从文件读取,替换为json.load(open("你的文件路径.json")))
raw_data = '''
[
  {
    "TX_ID": "C592096166066790609734",
    "FEE_1": 0.25,
    "FEE_7": 0.95,
    "USAGE": "Yzua12"
  },
  {
    "TX_ID": "C636460166108115381222",
    "FEE_1": 0.35,
    "FEE_3": 1.39,
    "USAGE": "Yzua13"
  }
]
'''

# 解析JSON为Python数据结构
data = json.loads(raw_data)

# 逐个处理每条数据
processed_data = []
for item in data:
    new_item = {}
    for key, val in item.items():
        if key.startswith("FEE_"):
            new_item[key] = {"set": val}
        else:
            new_item[key] = val
    processed_data.append(new_item)

# 输出格式化后的结果(若要保存为文件,用json.dump(processed_data, open("结果文件.json", "w"), indent=2))
print(json.dumps(processed_data, indent=2))

逻辑说明

  1. JSON解析:使用json.loads将JSON字符串转为Python可操作的列表和字典;如果是从本地文件读取数据,直接用json.load()读取文件对象即可。
  2. 字段判断与转换:遍历每条数据的键值对,通过startswith("FEE_")判断目标字段,将符合条件的值包装成指定格式的字典,其他字段直接保留原值。
  3. 结果输出:用json.dumps将处理后的Python结构转回格式化的JSON字符串,方便查看或保存到文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 05:26:27