anthony,
where am I going wrong here? 
#!/usr/local/bin/python3
import tables
import numpy as np
import datetime, time
encoding = 'UTF-8'
test_file = 'test_select.h5'
handle = tables.openFile(test_file, "w")
node   = handle.createGroup(handle.root, 'test')
table  = handle.createTable(node, 'table', dict(
index   = tables.Int64Col(),
        column  = tables.StringCol(25),
values  = tables.FloatCol(shape=(3)),
))

# add data
r = table.row
for i in range(10):
r['index'] = i
r['column'] = ("str-%d" % (i % 5)).encode(encoding)
r['values'] = np.arange(3)
r.append()
table.flush()
handle.close()
# read
handle = tables.openFile(test_file,"r")
result = handle.root.test.table.read()
print("table data\n")
print(result)
# where
print("\nselector\n")
selector = "(column == 'str-2')".encode(encoding)
print(selector)
result = handle.root.test.table.readWhere(selector)
print(result)

and the following out:

[sheep-jreback-/code/arb/test] python3 pytables-3.py
table data
[(b'str-0', 0, [0.0, 1.0, 2.0]) (b'str-1', 1, [0.0, 1.0, 2.0])
(b'str-2', 2, [0.0, 1.0, 2.0]) (b'str-3', 3, [0.0, 1.0, 2.0])
(b'str-4', 4, [0.0, 1.0, 2.0]) (b'str-0', 5, [0.0, 1.0, 2.0])
(b'str-1', 6, [0.0, 1.0, 2.0]) (b'str-2', 7, [0.0, 1.0, 2.0])
(b'str-3', 8, [0.0, 1.0, 2.0]) (b'str-4', 9, [0.0, 1.0, 2.0])]
selector
b"(column == 'str-2')"
Traceback (most recent call last):
File "pytables-3.py", line 37, in <module>
result = handle.root.test.table.readWhere(selector)
File 
"/usr/local/lib/python3.3/site-packages/tables-3.0.0-py3.3-linux-x86_64.egg/tables/_past.py",
 line 35, in oldfunc
return obj(*args, **kwargs)
File 
"/usr/local/lib/python3.3/site-packages/tables-3.0.0-py3.3-linux-x86_64.egg/tables/table.py",
 line 1522, in read_where
self._where(condition, condvars, start, stop, step)]
File 
"/usr/local/lib/python3.3/site-packages/tables-3.0.0-py3.3-linux-x86_64.egg/tables/table.py",
 line 1484, in _where
compiled = self._compile_condition(condition, condvars)
File 
"/usr/local/lib/python3.3/site-packages/tables-3.0.0-py3.3-linux-x86_64.egg/tables/table.py",
 line 1358, in _compile_condition
compiled = compile_condition(condition, typemap, indexedcols)
File 
"/usr/local/lib/python3.3/site-packages/tables-3.0.0-py3.3-linux-x86_64.egg/tables/conditions.py",
 line 419, in compile_condition
func = NumExpr(expr, signature)
File 
"/usr/local/lib/python3.3/site-packages/numexpr-2.1-py3.3-linux-x86_64.egg/numexpr/necompiler.py",
 line 559, in NumExpr
precompile(ex, signature, context)
File 
"/usr/local/lib/python3.3/site-packages/numexpr-2.1-py3.3-linux-x86_64.egg/numexpr/necompiler.py",
 line 511, in precompile
constants_order, constants = getConstants(ast)
File 
"/usr/local/lib/python3.3/site-packages/numexpr-2.1-py3.3-linux-x86_64.egg/numexpr/necompiler.py",
 line 294, in getConstants
for a in constants_order]
File 
"/usr/local/lib/python3.3/site-packages/numexpr-2.1-py3.3-linux-x86_64.egg/numexpr/necompiler.py",
 line 294, in <listcomp>
for a in constants_order]
File 
"/usr/local/lib/python3.3/site-packages/numexpr-2.1-py3.3-linux-x86_64.egg/numexpr/necompiler.py",
 line 284, in convertConstantToKind
return kind_to_type[kind](x)
TypeError: string argument without an encoding
Closing remaining open files: test_select.h5... done 
------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Pytables-users mailing list
Pytables-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytables-users

Reply via email to