将 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 之间转换基本类型。