首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python 3.12,新特性json.AttrDict,像js一样获取字典的值

json.AttrDict - 让字典也可像对象一样属性访问在Python中,我们常用dict对象来储存键值对数据。但是,dict对象只支持使用[]来访问键对应的值,而不支持.属性访问的方式。例如,如果我们有一个dict:

user = {'name': 'John', 'age': 30}

要访问name对应的值,只能使用user['name'],而不能使用user.name。这在许多情况下不是很方便,特别是当对JSON数据解析得到的dict对象进行访问时。如果可以使用.属性访问,无疑会更加优雅简洁。为此,Python在3.12版本中新增了json.AttrDict对象。它继承自dict,所以具有所有dict的功能。但同时也支持.属性访问方式。我们可以很简单地如下创建一个AttrDict对象:

import json

user = json.AttrDict({'name': 'John', 'age': 30})

print(user.name) # John

print(user['name']) # John

可以看到,AttrDict同时支持.属性访问和[]方括号访问,这为我们带来了极大的方便。而要从JSON字符串创建AttrDict对象,只需要在json.loads()中传入object_hook参数:

data = '{"name": "John", "age": 30}'

user = json.loads(data, object_hook=json.AttrDict)

print(user.name) # John

如果获取一个不存在值,就会AttributeError报错

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230623A07G6000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券