Box-具有高级点符号访问权限的Python词典

简介: 什么是Box?Box的设计旨在轻松地替换python中的字典,从而增加点符号访问和其他功能!Box会自动将无法访问的键作为属性安全地进行访问。您始终可以将conversion_box = False传递给Box以禁用该行为。同样,添加到Box或BoxList对象的所有新字典和列表都将自动转换。

什么是Box?
Box的设计旨在轻松地替换python中的字典,从而增加点符号访问和其他功能!
71257933_202012111141250957299732.png
Box会自动将无法访问的键作为属性安全地进行访问。您始终可以将conversion_box = False传递给Box以禁用该行为。
同样,添加到Box或BoxList对象的所有新字典和列表都将自动转换。

from box import Box

movie_box = Box({ "Robin Hood: Men in Tights": { "imdb stars": 6.7, "length": 104 } })

movie_box.Robin_Hood_Men_in_Tights.imdb_stars
# 6.7

有六种以上的方法可以自定义Box并使其适合您。

示例

由于Python的鸭子类型(duck typing)功能(增加了点符号访问),Box的设计旨在轻松地替换透明的字典。
初始化后设置的所有子字典或子字典将自动转换为Box对象。您始终可以对其运行.to_dict(),以将对象和所有子对象返回到常规词典中。
Box可以像dict一样实例化。

Box({'data': 2, 'count': 5})
Box(data=2, count=5)
Box({'data': 2, 'count': 1}, count=5)
Box([('data', 2), ('count', 5)])

# All will create
# <Box: {'data': 2, 'count': 5}>

Box是dict的子类,它重写了一些基本功能,以确保存储在dict中的所有内容都可以作为属性或键值进行访问。

small_box = Box({'data': 2, 'count': 5})
small_box.data == small_box['data'] == getattr(small_box, 'data')

添加到Box的所有字典(和列表)将在查找时转换为Box(或BoxList),从而允许递归点表示法访问。

Box还包括帮助程序函数,可将其转换回dict以及JSON,YAML,TOML或msgpack字符串或文件。

相关文章
|
8天前
|
存储 应用服务中间件 开发工具
对象存储OSS-Python设置代理访问请求
通过 Python SDK 配置 nginx 代理地址请求阿里云 OSS 存储桶服务。示例代码展示了如何使用 RAM 账号进行身份验证,并通过代理下载指定对象到本地文件。
49 15
|
3月前
|
SQL JavaScript 前端开发
基于Python访问Hive的pytest测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Python、来开发Hive应用的方法,产生的代码如下
83 6
基于Python访问Hive的pytest测试代码实现
|
3月前
|
机器学习/深度学习 数据采集 算法
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
有多种方法可以处理时间序列数据中的噪声。本文将介绍一种在我们的研究项目中表现良好的方法,特别适用于时间序列概况中数据点较少的情况。
66 1
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
|
3月前
|
NoSQL JavaScript Java
Java Python访问MongoDB
Java Python访问MongoDB
26 4
|
2月前
|
iOS开发 MacOS Python
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件
Python编程-macOS系统数学符号快捷键录入并生成csv文件转换为excel文件
35 0
WK
|
3月前
|
存储 安全 索引
如何在Python中访问字典中的值
在Python中,访问字典(Dictionary)中的值非常简单。字典是一种无序的集合,它存储了键值对(key-value pairs),其中每个键都是唯一的,并映射到一个值上。要访问字典中的值,你需要使用键作为索引。
WK
83 0
|
4月前
|
程序员 数据库连接 API
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
分享一个解决 EF 性能低的思路,通过 Python 访问心跳侦测 API 保持 EF 在线
|
5月前
|
数据采集 Java C语言
Python面向对象的高级动态可解释型脚本语言简介
Python是一种面向对象的高级动态可解释型脚本语言。
47 3
|
5月前
|
Unix API Python
python提供了两个级别访问的网络服务
【7月更文挑战第23天】python提供了两个级别访问的网络服务
45 7
|
4月前
|
机器学习/深度学习 开发工具 Python
【Azure 应用服务】使用Python Azure SDK 来获取 App Service的访问限制信息(Access Restrictions)
【Azure 应用服务】使用Python Azure SDK 来获取 App Service的访问限制信息(Access Restrictions)