How can I send a C++ map<> to Python using Boost Python object? -
i want pass map<string, string> c++ code python code while i'm using boost::python::object. want use input parameters.
i define dictionary in python this:
script_parameters = {} and pass map<string, string> in c++ this:
typedef map<string, string> commandparametersmap; if ( !command_parameters.empty() ) { commandparametersmap::iterator begin = command_parameters.begin(); commandparametersmap::iterator end = command_parameters.end(); boost::python::dict command_parameters_dict; (commandparametersmap::iterator = begin; != end; it++) { command_parameters_dict[it->first] = it->second; } m_script_global["script_parameters"] = command_parameters_dict; } and run python file:
object o_result = exec(m_filescript->c_str(), m_script_global, m_script_global); but here problem: script_parameters in python code empty. doing wrong in here?
i have mention other parts of code, such executing scripts, work fine. want know how can pass data c++ python boost::python::object.
i tried way still have same problem:
i made script_mode in python code this:
script_mode = "" then tried pass string variable in c++ python this:
m_script_global["script_mode"] = "get_script_version"; object o_result = exec(m_filescript->c_str(), m_script_global, m_script_global); when try back, has value assigned in python, "".
string mode = extract<std::string>(m_script_global["script_mode"]);
Comments
Post a Comment