http://www.picklingtools.com/
jest biblioteka o nazwie PicklingTools które pomogą utrzymać które mogą być użyteczne: to pozwala tworzyć struktury danych w języku C++, które można następnie zalewa/unpickle ... to jest C++, a nie C, ale to nie powinno być problemem w dzisiejszych czasach (zakładając, że używasz pakietu gcc/g ++).
Biblioteka jest zwykłą biblioteką C++ (istnieją przykłady C++ i Python w dystrybucji pokazujące, jak korzystać z biblioteki poprzez gniazda i pliki zarówno z C++, jak i Pythona), ale ogólnie rzecz biorąc, podstawą trawienia plików jest dostępny.
Podstawową ideą jest to, że biblioteka PicklingTools zapewnia "podobne do Pythona" struktury danych z C++, dzięki czemu można serializować i deserializować do/z Python/C++. Wszystkie (?) Podstawowe typy: int, long int, string, None, complex, dictionarys, lists, słowniki uporządkowane i krotki są obsługiwane. Jest kilka haczyków do wykonywania klas niestandardowych, ale ta część jest nieco niedojrzała: reszta biblioteki jest dość stabilna i była aktywna przez 8 (?) Lat.
Prosty przykład:
#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;
}
Istnieje również dokumentacja (FAQ i Podręcznik użytkownika) na stronie internetowej.
Nadzieja jest to przydatne:
Gooday,
Richie
http://www.picklingtools.com/
Czy przenośność bardzo ważne dla aplikacji? –
Niezupełnie, ponieważ exaile działa tylko na Linuksie, o ile wiem. –