python 嵌套字典更改为命名元组
时间: 2023-06-22 12:29:27 浏览: 184
可以使用 Python 中的 collections 模块中的 namedtuple 函数将嵌套字典更改为命名元组。下面是一个示例代码:
```python
from collections import namedtuple
nested_dict = {
'person': {
'name': 'Alice',
'age': 30,
'address': {
'street': '123 Main St',
'city': 'Anytown',
'state': 'CA',
'zip': '12345'
}
}
}
def convert_to_namedtuple(d):
for key, value in d.items():
if isinstance(value, dict):
d[key] = convert_to_namedtuple(value)
return namedtuple('Struct', d.keys())(*d.values())
namedtuple_obj = convert_to_namedtuple(nested_dict)
print(namedtuple_obj.person.name)
print(namedtuple_obj.person.age)
print(namedtuple_obj.person.address.street)
print(namedtuple_obj.person.address.city)
print(namedtuple_obj.person.address.state)
print(namedtuple_obj.person.address.zip)
```
在这个示例中,我们首先定义了一个嵌套字典 nested_dict,然后定义了一个名为 convert_to_namedtuple 的函数,该函数将嵌套字典转换为命名元组。在函数中,我们使用递归的方式遍历字典,并将其转换为命名元组。最后,我们使用 namedtuple 函数创建了一个新的命名元组对象 namedtuple_obj,并可以使用点号来访问其属性。
阅读全文