我正在使用Python 2.7,并尝试执行PyTables查询:
#Here the condition
selectedIndex = [1,6,7,9]
condition = 'IndexColumn in selectedIndex'
#here the query
for x1 in tab.where(condition,selectedIndex):
...
...
...
我得到了:
TypeError: argument of type 'VariableNode' is not iterable
从有关pytables的文档中,我试图使用它:
Table.where(condition, condvars=None, start=None, stop=None, step=None)
那:
condition = 'col1 == "AAAA"'
for record in table.where(condition): # TypeError in Python3
#do something with "record"
我做错了什么?
答案 0 :(得分:1)
我认为在你的情况下使用字符串参数进行内核查询的正确方法是:
conditon="(IndexColumn==1)|(IndexColumn==6)|(IndexColumn==7)|(IndexColumn==9)"
和IndexColumn需要是IsDescription类中指定的列的实际名称。我相信python条件“a in b”对Pytablles查询无效
关于你评论的编辑:
"".join(["(IndexColumn==%i)|"%j for j in selectedIndex])[:-1]
应该为您提供正确的查询字符串。