查询PyTables嵌套列

mus*_*ole 3 python pytables

我有一个带有嵌套表列的表,路由.在其下面是另外两种嵌套数据类型,master和slave都有一个整数id和字符串类型字段.

我想运行像table.readWhere('route/master/id == 0')之类的东西,但我得到"变量route指的是嵌套列,不允许在条件中"

有没有一种方法来查询pytables中的嵌套数据类型?

小智 6

您必须创建要在条件字符串中使用的变量.一种选择是定义变量字典:

table.readWhere('rId==0', condvars={'rId': table.cols.route.master.id})
Run Code Online (Sandbox Code Playgroud)

另一种选择是为条件中使用的列定义局部变量.

rId = table.cols.route.master.id
table.readWhere('rId==0')
Run Code Online (Sandbox Code Playgroud)

由于这污染了命名空间,我建议您创建一个包装代码的函数.我试图引用列本身,但似乎解释器在抛出NameError之前获取整个数据集.

table.readWhere('table.cols.route.master.id==0') # DOES NOT WORK
Run Code Online (Sandbox Code Playgroud)

有关库引用中 where()方法的更多信息.