如何便捷地访问和操作Python深层嵌套字典?

如何便捷地访问和操作python深层嵌套字典?

高效处理Python深层嵌套字典

本文探讨高效访问和操作Python深度嵌套字典的方法,尤其针对处理JSON数据或类似结构数据场景,避免冗余代码。我们将改进和扩展基于属性树访问和路径支持的方案。

方法一:属性树访问

通过属性访问(例如my_obj.a.b.c)访问嵌套字典值。 Python的__getattr__方法无法直接判断属性路径是否存在,访问不存在路径会引发AttributeError。 为解决此问题,需自定义类,在访问不存在路径时返回None或抛出KeyError。

立即学习“Python免费学习笔记(深入)”;

直接利用dict和__getattr__、__setattr__方法更直接。 无需将__getitem__设置为dict.__getitem__的别名。 更稳健的方法是修改__getitem__方法,在访问不存在键时创建新的dotdictify对象,动态构建属性树:

def __getitem__(self, key):    if key not in self:        dict.__setitem__(self, key, dotdictify())    return dict.__getitem__(self, key)

方法二:路径支持

使用点分隔符表示法(例如'a.b.c')访问和设置嵌套字典值,需要修改dotdictify类以解析点分隔符表示法,递归访问和修改字典值。 改进后的dotdictify类如下:

class dotdictify(dict):    # ... (省略部分代码,与原文答案相同) ...

此改进后的dotdictify类重写了__setitem__、__getitem__、__contains__和setdefault方法,支持点分隔符表示法。 它在设置值时自动创建不存在的嵌套字典,并正确处理get()和setdefault()方法。 测试代码验证了其功能的完整性。

以上就是如何便捷地访问和操作Python深层嵌套字典?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1358387.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
百度百科网页爬取XPath返回空值:如何解决302重定向问题?
上一篇 2025年12月13日 21:48:35
机器视觉小白入门:哪个框架或学习资料最适合我?
下一篇 2025年12月13日 21:48:38

相关推荐

发表回复

登录后才能评论
关注微信