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

如何通过变量动态读取pandas加载的嵌套JSON节点数据

实现方法

你只需要把存储了节点名的变量直接放在方括号索引位即可,Python会自动读取变量存储的字符串作为键名完成查找,不需要额外的特殊语法。

先修正两处基础问题

  1. 你给出的JSON结构缺少键和值之间的冒号、同级键之间的逗号,合法结构应为:
{
  "Experiment": {
    "rats": {
      "animal": [1,2,3,4]
    },
    "dogs": {
      "animal": [1,2,3,4]
    }
  }
}
  1. 你原本的硬编码写法里,字符串类型的键名没有加引号,Python会把Experiment、dogs识别成变量名而非键名字符串,会直接报命名错误。

动态读取的正确写法

所有层级的键访问都通过方括号完成,存了键名的变量直接放进方括号就行:

import pandas as pd

conf = pd.read_json(filepath)
# 赋值要读取的节点名,修改这个变量值就能切换读取rats/dogs的数据
target_type = "dogs"
# 变量直接作为索引传入即可
animal = conf["Experiment"][target_type]["animal"][1]

如果后续要切换读rats节点,只需要把target_type的值改成"rats"即可,不需要修改索引逻辑。

注:pd.read_json读取嵌套JSON返回的对象不管是字典结构还是嵌套的pandas Series结构,上述索引方法都通用,pandas的标签索引原生支持传入变量作为匹配的标签值。

你之前写的conf[Experiment]a[1]属于不符合Python语法的写法,Python不支持直接把变量贴在方括号后面做索引,每一层的键访问都需要单独包裹在一对方括号中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 07:27:18