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 ()
вызывает загрузку всего словаря в память, что на самом деле не нужно. Есть ли лучший способ сделать это?