Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你能转换成c++;将快速json对象转换为Python json对象?_Python_Json_Python C Api_Rapidjson - Fatal编程技术网

你能转换成c++;将快速json对象转换为Python json对象?

你能转换成c++;将快速json对象转换为Python json对象?,python,json,python-c-api,rapidjson,Python,Json,Python C Api,Rapidjson,我正在构建一个C++项目,它连接到一个客户拥有的Python代码库并向Jython代码发送JSON对象。因为python代码库是客户拥有的,所以我无法修改python代码库以接收json字符串。我使用PythonC/API作为接口 我构建了一个小python文件,使用python的json库将json字符串转换为json对象。我更愿意用Rabijson在C++侧写JSON对象。我能从C++快速JSON构建Python JSON对象并让它在Python的JSON库中读取而不将对象转换为字符串吗?如

我正在构建一个C++项目,它连接到一个客户拥有的Python代码库并向Jython代码发送JSON对象。因为python代码库是客户拥有的,所以我无法修改python代码库以接收json字符串。我使用PythonC/API作为接口

我构建了一个小python文件,使用python的json库将json字符串转换为json对象。我更愿意用Rabijson在C++侧写JSON对象。我能从C++快速JSON构建Python JSON对象并让它在Python的JSON库中读取而不将对象转换为字符串吗?如果可能的话,哪个函数是将json文档转换为Python对象的正确函数

C++:
PyObject* packJsonDict;
PyObject* customerDict;

int PYCPP::getJsonToInterface()
{
    std::string json= "{\"pet\": \"dog\", \"count\": 5}";
    PyObject* JsonObject = m_pImpl->pack_JsonString(json);

    std::string function_string = "read_json";
    PyObject* args = PyTuple_Pack(1, JsonObject);

    //trying packing just the json string
    PyObject* runnableFunction = PyDict_GetItemString(customerDict,     (char*)function_string);
    PyObject* result = PyObject_CallObject(runnableFunction, args);
}

PyObject* PYCPP::pack_JsonString(std::string json_string)
{
    std::string function_string = "convert_jsonString_to_jsonObject";
    PyObject* args = PyTuple_Pack(1, PyString_FromString((char*)    json_string.c_str()) );

    //trying packing just the json string
    PyObject* runnableFunction = PyDict_GetItemString(packJsonDict,     (char*)function_string);
    PyObject* result = PyObject_CallObject(runnableFunction, args);

    if(result == nullptr)
    {
        std::cout << "result was null!\n";
    }
    return result;
}

Python:
import json

def convert_jsonString_to_jsonObject(jsonString):

    print "converting:", jsonString

    return json.loads(jsonString)
C++:
PyObject*packJsonDict;
PyObject*客户信息技术;
int-PYCPP::getJsonToInterface()
{
std::string json=“{\'pet\':\'dog\',\'count\':5}”;
PyObject*JsonObject=m_pImpl->pack_JsonString(json);
std::string function\u string=“read\u json”;
PyObject*args=PyTuple_Pack(1,JsonObject);
//正在尝试打包json字符串
PyObject*runnableFunction=PyDict_GetItemString(customerDict,(char*)函数_string);
PyObject*result=PyObject\u CallObject(runnableFunction,args);
}
PyObject*PYCPP::pack_JsonString(std::string json_string)
{
std::string function_string=“convert_jsonString_to_jsonObject”;
PyObject*args=PyTuple_Pack(1,PyString_FromString((char*)json_string.c_str());
//正在尝试打包json字符串
PyObject*runnableFunction=PyDict_GetItemString(packJsonDict,(char*)函数_string);
PyObject*result=PyObject\u CallObject(runnableFunction,args);
如果(结果==nullptr)
{

是的,你可以。你必须(递归地)遍历rapid json对象并用它手动构造。谢谢。我会查出来的。是的,你可以。你必须(递归地)遍历rapid json对象并用它手动构造。谢谢。我会查出来的。