Python从列表中创建嵌套字典

时间:2014-10-30 10:52:50

标签: python

我查询DB以获取我想要转换为dict的产品列表。 这是我的模特:

class Product(db.Model):
    __tablename__ = 'products'

    id = db.Column(db.Unicode(64), primary_key=True)
    name = db.Column(db.Unicode(2048), nullable=False)
    descripton = db.Column(db.Unicode(2048), nullable=False)

这就是我想要的结果:

result = { id: { name: name, description: description}, ... }

我可以使用列表理解语法来执行此操作吗?

result = {p.id: {name: p.name, description: p.description for p in products.all()}

1 个答案:

答案 0 :(得分:1)

当然可以。拿这个:

{p.id: {name: p.name, description: p.description}  for p in products.all()}

但你确定你需要吗?您可以覆盖__getitem__方法:

class Product(db.Model):
    __tablename__ = 'products'

    id = db.Column(db.Unicode(64), primary_key=True)
    name = db.Column(db.Unicode(2048), nullable=False)
    descripton = db.Column(db.Unicode(2048), nullable=False)

    def __getitem__(self, key):
        # Code to find object in DB and transform them if you want.