如何将python对象从C ++库转换为JSON?

时间:2013-09-18 13:05:57

标签: python jsonpickle py++

我使用boost.python和py ++创建了一个共享库。我可以从库中定义的类型实例化对象。我想通过json对这些对象进行编码/解码。 我使用jsonpickle模块。但是,它不编码属性。我做了一些研究。最有可能出现问题,因为编码对象的__dict__为空。

共享库中的示例类:

struct Coordinate
{
    int x;
    int y;
    Coordinate(int aX, int aY);
}; 

这是python包装器:

BOOST_PYTHON_MODULE(pyplusplus_test){
    bp::class_< Coordinate >( "Coordinate", bp::init< int, int >(( bp::arg("aX"), bp::arg("aY") )) )
        .enable_pickling()
        .def_readwrite( "x", &Coordinate::x )
        .def_readwrite( "y", &Coordinate::y );
  //...
}

来自python的代码片段:

cord = pyplusplus_test.Coordinate(10,10)
cord.x = 23
cord.y = -11
tmpStr = jsonpickle.encode(cord)
print tmpStr

而且,输出:

{"py/object": "pyplusplus_test.Coordinate"}

请注意,json输出中没有xy

有什么建议吗?

感谢。

0 个答案:

没有答案