问题描述
我正在尝试转换std::string to PyObject
。
std::string st = jsp.updateRoot(people,people);
PyObject* pValue = PyBytes_Asstring(st);
使用上述方法无效。
我如何转换?
解决方法
来自文档:
char* PyBytes_AsString(PyObject *o)
返回指向o内容的指针。指针指向o的内部缓冲区,该缓冲区由len(o)+ 1个字节组成。缓冲区中的最后一个字节始终为空,而不管是否还有其他空字节。除非以PyBytes_FromStringAndSize(NULL,size)创建对象,否则不得以任何方式修改数据。不能释放它。如果o根本不是字节对象,则PyBytes_AsString()返回NULL并引发TypeError。
这是OP的错误方向。
相反转换的功能是
PyObject* PyBytes_FromString(const char *v)
返回值:新参考。
返回一个新的字节对象,成功时返回字符串v的值,失败时返回NULL。参数v不能为NULL;它不会被检查。