хранение «объекта» - PullRequest
1 голос
/ 05 ноября 2010

Поддерживает ли PyTables хранение объектов Python?как то так:

dtype = np.dtype([('Name', '|S2'), ('objValue', object)])
data = np.zeros(3, dtype)
file.createArray(box3,'complicated',data)

Я получаю ошибку при попытке сделать это, конечно ... Как правильно хранить массивы объектов? Возможно ли это?Спасибо

Ответы [ 2 ]

5 голосов
/ 10 ноября 2010

Вы можете сохранить общий объект Python с помощью Pytables:

>>> dtype = np.dtype([('Name', '|S2'), ('objValue', object)])
>>> data = np.zeros(3, dtype)
>>> file = tables.openFile('/tmp/test.h5', 'w')
>>> myobjects = file.createVLArray(file.root, 'myobjects', tables.ObjectAtom())
>>> myobjects.append(data)
>>> myobjects[0]
array([('', 0), ('', 0), ('', 0)], 
      dtype=[('Name', '|S2'), ('objValue', '|O8')])

Однако при этом будет использоваться pickle (фактически cPickle), поэтому вы не сможете получить доступ к этим объектам с других языков (pickle - это формат сериализации, поддерживаемый только самим Python).

1 голос
/ 05 ноября 2010

Попробуйте модуль pickle, если вы хотите хранить сложные данные там, где они не поддерживаются данной библиотекой.

...