使用 ctypes 将 python dict 转换为结构

Posted

技术标签:

【中文标题】使用 ctypes 将 python dict 转换为结构【英文标题】:Convert python dict to a structure using ctypes 【发布时间】:2017-11-14 05:28:53 【问题描述】:

我有这样的结构:

struct Person 
  std::string name;
  int age;
  std::string title;
  float income;
;

在 python 方面,我有一个这样的字典:

person =  'name':'Alex', 
           'age':36, 
           'title':'programmer', 
           'income':13435.40
          

现在我想使用 ctypes 将 Python dict 转换为 C++ 程序。完成这项任务有一个愚蠢的方法是我们可以编写 4 个 c 风格的函数来独立设置这四个元素。我们如何在一个函数中完成这个任务,它可以解决不同的数据类型(字符串、整数、浮点数)?

【问题讨论】:

string 是什么?如果它是std::string,它就是一个 C++ 程序。没有名为 C/C++ 的野兽。 Convert Python dictionary into C like structure的可能重复 是的,它是 std::string 那么你应该已经适当地标记了。这需要 C++ 专业知识。 【参考方案1】:

ctypes 无法单独处理 C++。

SWIG can 虽然这相当于为 C++ 代码编写 C 包装器。它需要构建原生代码。

【讨论】:

以上是关于使用 ctypes 将 python dict 转换为结构的主要内容,如果未能解决你的问题,请参考以下文章

[转] python关于ctypes使用char指针与bytes相互转换的问题

[转]python使用ctypes模块调用windowsapi获取系统版本

python tensorflow将numpy dict文件转成pb文件

使用ctypes实现python类型和C语言类型之间的相互转化

python 中Dict 转 Json

python:DataFrame转dict字典