Guardando diccionarios en el archivo (compatible con numpy y Python 2/3)

Quiero hacer un almacenamiento jerárquico de clave-valor en Python, que básicamente se reduce a almacenar diccionarios en archivos. Con eso me refiero a cualquier tipo de estructura de diccionario, que puede contener otros diccionarios, matrices numpy, objetos de Python serializables, etc. No solo eso, quiero que almacene numerosos arrays optimizados para el espacio y que funcionen bien entre Python 2 y 3.

A continuación hay métodos que conozco que están ahí fuera. Mi pregunta es qué falta en esta lista y ¿hay alguna alternativa que esquive a todos mis agentes?

Pitónpickle módulo (interruptor de ruptura: infla el tamaño de las matrices numpy mucho)Numpy'ssave/savez/load (interruptor de ruptura: formato incompatible en Python 2/3)Reemplazo de PyTables para numpy.savez (interruptor de ruptura: sólo maneja matrices numpy)Uso de PyTables de forma manual (interruptor de ruptura: quiero esto para cambiar constantemente el código de investigación, por lo que es muy conveniente poder volcar diccionarios a archivos llamando a una sola función)

El reemplazo de PyTables denumpy.savez es prometedor, ya que me gusta la idea de usar hdf5 y comprime los arreglos numpy de manera muy eficiente, lo que es una gran ventaja. Sin embargo, no toma ningún tipo de estructura de diccionario.

Últimamente, lo que he estado haciendo es usar algo similar al reemplazo de PyTables, pero mejorándolo para poder almacenar cualquier tipo de entradas. En realidad, esto funciona bastante bien, pero me encuentro almacenando tipos de datos primitivos en arreglos de longitud 1, lo cual es un poco incómodo (y ambiguo a los arreglos de longitud 1 real), aunque establezcochunksize a 1 por lo que no ocupa tanto espacio.

¿Hay algo así ya por ahí?

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta