提取和转换 boost::python::list 的列表元素

Posted

技术标签:

【中文标题】提取和转换 boost::python::list 的列表元素【英文标题】:Extract and convert list element of boost::python::list 【发布时间】:2014-11-14 01:28:47 【问题描述】:

我有intstring 的异构列表,我想将它们全部存储在vector<string> 中。 使用此命令:

    std::string temp = boost::python::extract<std::string>(xList[i][j]);

我收到此错误:

TypeError: No registered converter was able to produce a C++ rvalue of type std::string from this Python object of type float

【问题讨论】:

【参考方案1】:

你有两个选择:要么获取值作为boost::python::object 并检查类型并做任何你喜欢的事情,要么register a converter 将数字转换为字符串(大概使用std::to_string)。

您可以使用docs 中“提取 C++ 类型”的说明:

extract<std::string&> extractor(xList[i][j]);
if (extractor.check()) 
    std::string& v = extractor();

【讨论】:

谢谢,我怎样才能得到boost::python::object 并检查类型? 为什么字符串被定义为引用?

以上是关于提取和转换 boost::python::list 的列表元素的主要内容,如果未能解决你的问题,请参考以下文章

XSL 转换提取最小和最大日期

从字符串转换日期和/或时间并从日期中提取季度/年时转换失败

arcgis数据提取的作用

如何提取pdf中的数据将pdf转换成excel

提取和转换 jdbc sink 连接器的 kafka 消息特定字段

应用模型后Pyspark提取转换数据帧的概率[重复]