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

Python如何实现类似Node.js读取JSON文件指定属性值的功能?

Python 读取JSON嵌套属性的方法

Python中json.load()会将JSON对象转为Python字典,嵌套的JSON对象对应嵌套字典,你可以通过以下几种方式读取指定属性:

1. 基础嵌套取值(确认所有层级key存在时使用)

直接通过多层中括号拼接即可拿到对应值,你的代码可以修改为:

import json as js

# 推荐使用with上下文管理器读取文件,会自动关闭文件句柄,避免资源泄漏
with open('hello.json', 'r', encoding='utf-8') as data_json:
    data_worker = js.load(data_json)

# 直接读取worker_01下的name属性
name = data_worker['worker_01']['data']['name']
print(name) # 输出结果为 Juan

如果某一层的key不存在,这种写法会抛出KeyError,适合你确认JSON结构固定的场景。

2. 安全取值(避免key不存在时报错)

可以使用字典自带的get()方法,每层设置默认的空字典兜底,就算中间某层key不存在也会返回你设置的默认值,不会报错:

# 第二个参数为对应层级key不存在时的返回值,最终兜底默认值可以自定义
safe_name = data_worker.get('worker_01', {}).get('data', {}).get('name', '默认姓名')
print(safe_name)

3. 实现类似Node.js的路径式取值

如果你想要和Node.js里的路径写法用法保持一致,可以自己封装一个工具函数:

def get_by_path(data: dict, path: str, default=None):
    # 按点拆分路径为key列表
    key_list = path.split('.')
    current_val = data
    for key in key_list:
        if isinstance(current_val, dict) and key in current_val:
            current_val = current_val[key]
        else:
            # 任意一层key不存在就返回默认值
            return default
    return current_val

# 调用方式和你之前在Node.js中的用法非常接近
name = get_by_path(data_worker, 'worker_01.data.name')
print(name) # 输出结果为 Juan

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:15:04