У меня есть данные, хранящиеся в следующем объекте:
class AutoVivification(dict):
"""Implementation of perl's autovivification feature."""
def __getitem__(self, item):
try:
return dict.__getitem__(self, item)
except KeyError:
value = self[item] = type(self)()
return value
Я переезжаю на python3 и испытываю трудности с pickle
для хранения: проблема при загрузке файла автовивификации при переходе с python 2.7 на3.6, KeyError: 'DictType' .Я ищу что-то, что будет хранить этот объект.Я пытался:
import pandas as pd
import jsonpickle
import h5py
def test_hdf5():
dogs = AutoVivification()
dogs['type'] = pd.DataFrame([['k9']])
dogs['category']['color'] = 'white'
dogs['#'] = 4
hf = h5py.File(path_test + 'test.h5', 'w')
hf.create_dataset('dataset_1', data=dogs)
hf.close()
def test_jsonpickle():
dogs = AutoVivification()
dogs['type'] = pd.DataFrame([['k9']])
dogs['category']['color'] = 'white'
dogs['#'] = 4
frozen = jsonpickle.encode(dogs)
thawed = jsonpickle.decode(frozen)
Оба из них не работают.
Любые предложения о том, что попробовать?