簡體   English   中英

在 Python3 中將 C++ 中的 std::string 轉換為 PyObject

[英]Convert std::string to PyObject in C++ in Python3

我正在嘗試將std::string to PyObject轉換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; 它不會被檢查。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM