http://www.picklingtools.com/
有一个名为PicklingTools的库,我帮助维护它可能很有用:它允许你在C中形成数据结构然后你可以pickle / unpickle …它是C,而不是C,但这应该不是问题这些天(假设您正在使用gcc / g套件).
该库是一个普通的C库(分布中有C和Python的例子,展示了如何在C和Python的套接字和文件上使用库),但一般来说,可以使用文件的基础知识.
基本思想是PicklingTools库为您提供了来自C的“类python”数据结构,以便您可以对Python / C进行序列化和反序列化.所有(?)基本类型:int,long int,string,None,complex,dictionarys,lists,ordered dictionaries和tuples.有很少的钩子可以做自定义类,但是这部分有点不成熟:库的其余部分非常稳定并且已经活动了8(?)年.
简单的例子:
#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;
}
网站上还有其他文档(FAQ和用户指南).
希望这很有用:
Gooday,
任贤齐