【问题标题】:Nested dict and pybind11嵌套 dict 和 pybind11
【发布时间】:2018-11-23 22:01:45
【问题描述】:

我有一个使用 pybind11Python 捆绑的 C++ 扩展。扩展返回一个嵌套的 Python dict 对象:

#include <pybind11/pybind11.h>
namespace py = pybind11;

py::dict cpp_ext(void)  {
    // Variables
    py::dict res;

    // Result
    res["circle"]["x0"] = 0;
    res["circle"]["y0"] = 0;
    res["circle"]["r"] = 1;
    return res;
};

它编译,但给了我错误:

KeyError: ('circle',)

我应该如何构造一个嵌套的 py::dict 对象?

【问题讨论】:

  • py::dict circle; py::dict res; circle['x0'] = 0; ...; res['circle'] = circle;怎么样?
  • 工作,@a_guest!把它写成答案,我会接受的。

标签: python c++ pybind11


【解决方案1】:

您可以为嵌套实例创建一个单独的dict,然后将其分配给外部实例:

py::dict cpp_ext(void)  {
    // Variables
    py::dict res;
    py::dict circle;

    // Result
    circle["x0"] = 0;
    circle["y0"] = 0;
    circle["r"] = 1;
    res["circle"] = circle;
    return res;
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    相关资源
    最近更新 更多