使用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了一下,我对此并没有太多了解。
答案 0 :(得分:1)
找到了一个没有使用namedtuple
的解决方法,因为我认为这不适合我的用例(即,我不认为它支持嵌套的dicts /对象而没有使用它)
发现此问题Convert Python dict to object?并决定调整我的代码以使用它。
build = {'x': DB.query(x).filter(x.id == 'query').first()}
build = bunchify(build)
现在允许我这样做
>>> print build.x.id
27
的无缝连接。
简单比复杂更好。