Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python namedtuple中的查询,属性错误_Python_Sqlalchemy_Pyramid - Fatal编程技术网

Python namedtuple中的查询,属性错误

Python namedtuple中的查询,属性错误,python,sqlalchemy,pyramid,Python,Sqlalchemy,Pyramid,使用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()) 当我实际尝试使用print build.x.id访问

使用
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())
当我实际尝试使用
print build.x.id
访问
x
时,我得到:

AttributeError: 'property' object has no attribute 'id'

我认为这与在namedtuple中有一个查询有关,我只是做错了,或者它不是为了这样做而设计的。我在谷歌上搜索过,没有看到太多关于这方面的内容。

找到了一个不使用
命名双倍的解决方案,因为我认为这不适合我的用例(即,我认为它不支持嵌套的dicts/对象,而不需要融资)

发现这个问题,并决定调整我的代码以使用它

build = {'x': DB.query(x).filter(x.id == 'query').first()}
build = bunchify(build)
现在我可以这样做了

>>> print build.x.id
27
天衣无缝


简单总比复杂好。

试试:
print build.x['id']
也试过了。获取此错误:
TypeError:“property”对象没有属性“\uu getitem\uuuu”
我认为这与
namedtuple
没有任何关系(但可能);你能给我们介绍一下
DB
到底是什么吗?看起来你在
build
中投入的东西实际上并不是你想象的那样。可能应该注意到,但我认为这是假设的,因为我把
pyramid
作为一个标签。我使用的是
sqlalchemy
,因此
x
的查询结果通常类似于
,我可以在其中,
打印x.id
,然后我会得到一个整数。您的示例代码与您在实际程序中使用的代码完全一样吗?询问,因为我可以毫无问题地运行您的代码。