Skip to main content
 首页 » 编程设计

python之如何将 Python dict 转换为特定类型的对象

2025年05月04日10zdz8207

我需要使用 Python 2.7 将字典转换为类型化对象。

例如,如果我有这个字典:

mapy = {'id': 1, 'name': 'bob'} 

我需要一些方法在运行时根据之前的映射和类型名称(在本例中为 'Person')生成此类:

class Person: 
    def __init__(self): 
        self.id = id 
        self.name = name 

我应该考虑使用元编程技术吗?如果是的话,究竟是哪一种(装饰器、元类……)?

请注意,我不仅需要将字典转换为对象;我还需要将一些类型信息附加到生成的对象。

请您参考如下方法:

你可以尝试namedtuple:

from collections import namedtuple 
 
mapy = { 'id' : 1, 'name' : 'bob'} 
 
# Note that the order of `mapy.keys()` is unpredictable. 
Person = namedtuple('Person', mapy.keys()) 
 
p = Person(**mapy) 
p.id 
p.name