Speichern von Wörterbüchern in eine Datei (NumPy und Python 2/3 freundlich)

Ich möchte eine hierarchische Speicherung von Schlüsselwerten in Python durchführen, die sich im Grunde auf das Speichern von Wörterbüchern in Dateien beschränkt. Damit meine ich jede Art von Wörterbuchstruktur, die andere Wörterbücher, Numpy-Arrays, serialisierbare Python-Objekte usw. enthalten kann. Nicht nur das, ich möchte, dass es numpy Arrays platzoptimiert speichert und gut zwischen Python 2 und 3 spielt.

Unten sind Methoden aufgeführt, von denen ich weiß, dass sie da draußen sind. Meine Frage ist, was in dieser Liste fehlt und gibt es eine Alternative, die allen meinen Deal-Breakern ausweicht?

Pythonspickle Modul (Deal-Breaker: Bläst die Größe von Numpy-Arrays stark auf)Numpy'ssave/savez/load (Deal-Breaker: Inkompatibles Format für Python 2/3)PyTables-Ersatz für numpy.savez (Deal-Breaker: behandelt nur numpy Arrays)Manuelles Verwenden von PyTables (Deal-Breaker: Ich möchte, dass der Forschungscode ständig geändert wird. Daher ist es sehr praktisch, Wörterbücher durch Aufrufen einer einzelnen Funktion in Dateien zu speichern.)

Der PyTables-Ersatz vonnumpy.savez ist vielversprechend, da mir die Idee, hdf5 zu verwenden, gefällt und die numpy-Arrays sehr effizient komprimiert, was ein großes Plus ist. Es ist jedoch keine Art von Wörterbuchstruktur erforderlich.

In letzter Zeit habe ich etwas verwendet, das dem PyTables-Ersatz ähnelt, es jedoch verbessert, um alle Arten von Einträgen speichern zu können. Das funktioniert eigentlich ziemlich gut, aber ich finde mich darin, primitive Datentypen in Länge-1-CArrays zu speichern, was etwas umständlich ist (und nicht eindeutig zu tatsächlichen Länge-1-Arrays ist), obwohl ich festgelegt habechunksize zu 1, so dass es nicht so viel Platz einnimmt.

Gibt es so etwas schon da draußen?

Vielen Dank!

Antworten auf die Frage(5)

Ihre Antwort auf die Frage