python使用点操作符访问字典(dict)数据的方法

  • Post category:Python

要使用点操作符访问字典数据,我们需要先将字典转换为一个对象。实现这个对象的方式是使用Python内置的collections.namedtuple()函数,它可以返回一个拥有指定字段的只读对象。以下是完整攻略:

标准用法

  1. 定义一个字典(dict类型)
my_dict = {'a': 10, 'b': 20, 'c': 30}
  1. 使用collections.namedtuple()函数将字典转换为只读对象
from collections import namedtuple
my_namedtuple = namedtuple('my_namedtuple', my_dict.keys())(**my_dict)
  1. 现在就可以使用点操作符访问字典的键值了
print(my_namedtuple.a) # 输出 10
print(my_namedtuple.b) # 输出 20
print(my_namedtuple.c) # 输出 30

处理不规则的字典

有时候字典的键是不规则的,例如有些键包含了空格和标点符号,这是不能用于命名属性的。在这个例子中,我们使用了Python的re.sub()函数将所有的不规则的符号替换为空格。

  1. 定义一个不规则的字典
my_dict = {'a.': 10, 'b,': 20, 'c ': 30}
  1. 使用re.sub()函数将不规则的键转换为合法的属性名
import re
key_list = [re.sub(r'[^A-Za-z0-9]+', ' ', key).strip().replace(' ', '_') for key in my_dict.keys()]
my_namedtuple = namedtuple('my_namedtuple', key_list)(**my_dict)
  1. 现在就可以使用点操作符访问字典的键值了
print(my_namedtuple.a) # 输出 10
print(my_namedtuple.b) # 输出 20
print(my_namedtuple.c) # 输出 30

这就是使用点操作符访问字典数据的方法,它可以让我们以更加可读的方式访问字典的键值。