嵌套 dict 和 pybind11
Posted
技术标签:
【中文标题】嵌套 dict 和 pybind11【英文标题】:Nested dict and pybind11 【发布时间】:2018-11-23 22:01:45 【问题描述】:我有一个使用 pybind11 与 Python 捆绑的 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!把它写成答案,我会接受的。
【参考方案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;
;
【讨论】:
以上是关于嵌套 dict 和 pybind11的主要内容,如果未能解决你的问题,请参考以下文章
Pandas MultiIndex(超过 2 个级别)DataFrame 到嵌套 Dict/JSON