我有一个带有嵌套表列的表,路由.在其下面是另外两种嵌套数据类型,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()方法的更多信息.