obiekty pytables nie obsługują natywnych słowników Pythona. Sposób, w jaki ja to podszedł do struktury danych w postaci:W jaki sposób powinny być przechowywane słowniki python w pytables?
tables_dict = {
'key' : tables.StringCol(itemsize=40),
'value' : tables.Int32Col(),
}
(zauważ, że upewnić się, że klawisze są < 40 znaków), a następnie utworzyć tabelę przy użyciu tej struktury:
file_handle.createTable('/', 'dictionary', tables_dict)
a następnie wypełnić go z:
file_handle.dictionary.append(dictionary.items())
i pobierać dane z:
dict(file_handle.dictionary.read())
To działa poprawnie, ale ponowne wczytanie słownika jest bardzo powolne. Myślę, że problem polega na tym, że funkcja read()
powoduje załadowanie całego słownika do pamięci, co nie powinno być konieczne. Czy jest lepszy sposób to zrobić?