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

嵌套JSON转Pandas DataFrame时支持用户自定义字典键的实现方案

动态提取JSON嵌套字段生成DataFrame

我明白你想要让脚本更灵活,不再固定提取price字段的value,而是让用户自己指定要提取的嵌套键(比如taste这类替代字段)。下面是调整后的完整实现方案:

import json
import pandas as pd

# 读取两个JSON文件
with open('JSON1.json','r') as f1:
    item1 = json.load(f1)
with open('JSON2.json','r') as f2:
    item2 = json.load(f2)

# 主动询问用户想要提取的目标键
target_key = input("请输入要替代price的目标键(例如taste):")

# 定义水果列表,避免硬编码
fruits = ['apple', 'banana']

# 可选:添加异常处理,避免输入不存在的键导致报错
try:
    # 根据用户输入的键提取对应value
    v1s = [item1[fruit][target_key]['value'] for fruit in fruits]
    v2s = [item2[fruit][target_key]['value'] for fruit in fruits]
except KeyError:
    print(f"出错啦!JSON文件里找不到{target_key}这个字段,请检查输入或文件内容~")
    exit()

# 生成DataFrame并设置索引
df = pd.DataFrame({'value1': v1s, 'value2': v2s, 'key': fruits}).set_index('key')
print(df)

关键调整说明:

  • 用input()函数主动获取用户输入的目标键,彻底替换了原来硬写死的'price'
  • 把水果列表单独抽成fruits变量,后续要加新水果(比如orange)的话,只需要改这个列表就行,不用改多处代码
  • 新增了异常处理逻辑,用户输入不存在的键时会给出友好提示,不会直接崩溃
  • 用列表推导式简化了value的提取过程,代码更简洁易读

运行示例:

假设用户输入taste,且两个JSON文件里都包含taste字段,程序会自动提取对应值并输出类似这样的DataFrame:

value1  value2
key                  
apple      8.5      7.2
banana     6.3      7.8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 11:27:27