http://www.picklingtools.com/
hay una biblioteca llamados los PicklingTools la que me ayudan a mantener lo que podría ser útil: permite formar estructuras de datos en C++ que pueda luego salmuera/unpickle ... es C++, no C, pero eso no debería ser un problema en estos días (suponiendo que esté utilizando el conjunto de gcc/g ++).
La biblioteca es una biblioteca simple de C++ (hay ejemplos de C++ y Python dentro de la distribución que muestra cómo usar la biblioteca sobre sockets y archivos de C++ y Python), pero en general, lo básico disponible.
La idea básica es que la biblioteca PicklingTools le brinda estructuras de datos "tipo pitón" de C++ para que luego pueda serializar y deserializar hacia/desde Python/C++. Todos (?) Los tipos básicos: int, long int, string, None, complex, dictionarys, listas, diccionarios ordenados y tuplas son compatibles. Hay pocos ganchos para hacer clases personalizadas, pero esa parte es un poco inmadura: el resto de la biblioteca es bastante estable y ha estado activo durante 8 (?) Años.
ejemplo simple:
#include "chooseser.h"
int main()
{
Val a_dict = Tab("{ 'a':1, 'b':[1,2.2,'three'], 'c':None }");
cout << a_dict["b"][0]; // value of 1
// Dump to a file
DumpValToFile(a_dict, "example.p0", SERIALIZE_P0);
// .. from Python, can load the dictionary with pickle.load(file('example.p0'))
// Get the result back
Val result;
LoadValFromFile(result, "example.p0", SERIALIZE_P0);
cout << result << endl;
}
Existe documentación adicional (FAQ y Guía del usuario) en el sitio web.
Hope esto es útil:
Gooday,
Richie
http://www.picklingtools.com/
es la portabilidad muy importante para su aplicación? –
En realidad no, ya que exaile solo funciona en Linux por lo que yo sé. –