将 Python 字典转换成类 C 结构
Convert Python dictionary into C like structure
我是 Python 和 C 的新手,我想知道如何将字典元素放入类似 C 的结构(struct)中。
例如,这是我的结构:
typedef struct
{
int dim;
float *Tab1;
float *Tab2;
}
Tableaux;
这是我在 Python 中的字典:
Tableaux = {}
Tableaux["dim"]=None
Tableaux["Tab1"]=[]
Tableaux["Tab2"]=[]
这是我的接口函数:
static PyObject* py_initTab(PyObject* self, PyObject* args)
{
PyObject* dict;
Tableaux Tab;
if (!PyArg_ParseTuple(args, "O!", &dict))
return NULL;
Tab.Tab1=dict["Tab1"]; // How could I do something like that?
return Py_BuildValue("");
}
你可以使用 PyDict_GetItem()
:
PyObject* pytab1 = PyDict_GetItemString(dict, "Tab1");
由于结果是一个列表,您可以使用 these 调用来检查它
This documentation 解释了如何在 C 和 Python 之间转换基本类型。
我是 Python 和 C 的新手,我想知道如何将字典元素放入类似 C 的结构(struct)中。
例如,这是我的结构:
typedef struct
{
int dim;
float *Tab1;
float *Tab2;
}
Tableaux;
这是我在 Python 中的字典:
Tableaux = {}
Tableaux["dim"]=None
Tableaux["Tab1"]=[]
Tableaux["Tab2"]=[]
这是我的接口函数:
static PyObject* py_initTab(PyObject* self, PyObject* args)
{
PyObject* dict;
Tableaux Tab;
if (!PyArg_ParseTuple(args, "O!", &dict))
return NULL;
Tab.Tab1=dict["Tab1"]; // How could I do something like that?
return Py_BuildValue("");
}
你可以使用 PyDict_GetItem()
:
PyObject* pytab1 = PyDict_GetItemString(dict, "Tab1");
由于结果是一个列表,您可以使用 these 调用来检查它
This documentation 解释了如何在 C 和 Python 之间转换基本类型。