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

如何打开JSON文件提取引号内数据并保存为独立变量?

JSON内容提取与变量存储实现方案

使用Python内置的json标准库即可完成需求,无需安装第三方依赖,具体实现方式如下:

  • 按JSON原有层级手动映射变量:适合结构固定、需要明确变量语义的场景,不会出现变量名冲突问题
  • 递归自动提取所有字符串生成变量:适合结构不固定、需要批量提取所有引号包裹内容的场景

方式1:按层级手动映射变量(推荐)

先把JSON文件解析为Python字典结构,再按照JSON的嵌套层级直接索引取值,赋值给自定义变量即可,对应给出的JSON示例代码如下:

import json

# 读取并解析目标JSON文件,注意替换为你自己的文件路径
with open("target.json", "r", encoding="utf-8") as file:
    data = json.load(file)

# 按层级提取内容赋值为独立变量
# 根节点
class_data = data["class"]
# 学生1相关字段
s1_info = class_data["student1"]
s1_id = s1_info["studentID"]
s1_grade = s1_info["Campbell"]["Sims"]["grade"]
s1_class_size = s1_info["Campbell"]["Sims"]["class_size"]
# 学生2相关字段
s2_info = class_data["student2"]
s2_id = s2_info["studentID"]
s2_grade = s2_info["Williams"]["Johnson"]["grade"]
s2_class_size = s2_info["Williams"]["Johnson"]["class_size"]

# 其他场景可直接调用上述变量
print(s1_id)  # 输出:20345
print(s2_class_size) # 输出:25

方式2:递归自动提取所有引号包裹的内容

如果需要自动提取JSON里所有被引号包裹的键、字符串值,批量生成独立变量,可以通过递归遍历JSON结构动态注册全局变量,代码如下:

import json

def extract_strings(node, var_prefix="json_val"):
    if isinstance(node, dict):
        for key, val in node.items():
            # 将JSON键(引号包裹内容)注册为变量
            globals()[f"{var_prefix}_{key}"] = key
            # 递归处理下一层
            extract_strings(val, f"{var_prefix}_{key}")
    elif isinstance(node, str):
        # 将字符串值(引号包裹内容)注册为变量
        globals()[var_prefix] = node

# 加载JSON文件
with open("target.json", "r", encoding="utf-8") as file:
    data = json.load(file)

# 执行批量提取
extract_strings(data)

# 直接调用自动生成的变量即可
print(json_val_class_student1_studentID) # 输出:20345
print(json_val_class_student2_Williams_Johnson_grade) # 输出:3

注意:如果JSON结构中存在重名键,自动提取方式会出现变量覆盖问题,重名场景建议使用第一种手动映射的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:24:34