使用namedtuple
,我正在尝试向其中添加查询。
build = namedtuple('build', 'x y z')
build(x=DB.query(x).filter(x.id == 'query').first(),
y=DB.query(y).filter(y.id == 'query').first(),
z=DB.query(z).filter(z.id == 'query').first())
当我实际上尝试使用
x
访问print build.x.id
时,我得到:AttributeError: 'property' object has no attribute 'id'
我认为这与在namedtuple中进行查询有关,而我只是做错了,或者它并非旨在做到这一点。我已经在Google周围搜索,但对此却看不到什么。
最佳答案
找到了一种不使用namedtuple
的解决方法,因为我认为这不适合我的用例(即,我认为它不支持嵌套dicts / objects而无需使用finangling)
找到了这个问题,Convert Python dict to object?并决定调整我的代码以使用它。
build = {'x': DB.query(x).filter(x.id == 'query').first()}
build = bunchify(build)
现在可以让我做
>>> print build.x.id
27
无缝地。
简单胜于复杂。
关于python - 在namedtuple中查询,属性错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32172475/