Как должны храниться словари python в pytables?

pytables изначально не поддерживает словари Python. Я подошел к этому так, чтобы создать структуру данных в форме:

tables_dict = {
'key'         : tables.StringCol(itemsize=40),
'value'       : tables.Int32Col(),
}

(обратите внимание, что я гарантирую, что длина ключей меньше 40 символов), а затем создаю таблицу, используя эту структуру:

file_handle.createTable('/', 'dictionary', tables_dict)

, а затем заполните ее с помощью:

file_handle.dictionary.append(dictionary.items())

и получить данные с помощью:

dict(file_handle.dictionary.read())

Это работает нормально, но чтение словаря обратно происходит очень медленно. Я думаю, проблема в том, что функция read () вызывает загрузку всего словаря в память, что на самом деле не нужно. Есть ли лучший способ сделать это?

9
задан tdc 25 January 2012 в 01:06
поделиться