[发明专利]python字典和结构体间的快速转换方法在审
申请号: | 202011427236.5 | 申请日: | 2020-12-09 |
公开(公告)号: | CN112328231A | 公开(公告)日: | 2021-02-05 |
发明(设计)人: | 李杰 | 申请(专利权)人: | 远江盛邦(北京)网络安全科技股份有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京远大卓悦知识产权代理有限公司 11369 | 代理人: | 靳雪华 |
地址: | 100089 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | python 字典 结构 快速 转换 方法 | ||
1.一种python字典和结构体间的快速转换方法,其特征在于,包括以下步骤:
S1、搭建python环境;
S2、在所述python环境中构建一个转换文件;
S3、在所述转换文件中创建用于字典和结构体相互转换的第一函数和第二函数;
S4、利用待转换结构体定义实例M,对M进行赋值后,调用所述第一函数将赋值后的M转换为字典a,即实现结构体转换字典;
S5、清空对M的赋值,调用所述第二函数将字典a内的值赋值给所述待转换结构体,即实现字典对结构体的赋值。
2.如权利要求1所述的python字典和结构体间的快速转换方法,其特征在于,S4中调用所述第一函数将赋值后的M转换为字典a后,还需验证所述第一函数返回的结果是否正确,是,则转至S5;否,则重新创建所述第一函数;
S5中调用所述第二函数将字典a内的值赋值给所述待转换结构体后,还需验证赋值后的待转换结构体内成员的值是否正确,是,则后续采用所述第一函数和第二函数实现字典和结构体相互转换;否,则重新创建所述第二函数。
3.如权利要求1所述的python字典和结构体间的快速转换方法,其特征在于,S1中,所述python环境中包含python ctypes库。
4.如权利要求1所述的python字典和结构体间的快速转换方法,其特征在于,字典的键和结构体的成员的名字一致时才能进行相互转换。
5.如权利要求1所述的python字典和结构体间的快速转换方法,其特征在于,在相互转换前,需要按照赋值方式的不同将结构体内的成员的数据类型以及字典中所使用的数据类型分别进行分类,并在分类后的成员的数据类型和分类后的字典中所使用的数据类型间建立对应关系。
6.如权利要求5所述的python字典和结构体间的快速转换方法,其特征在于,S3中,所述第一函数的构建方法具体为:
S1-1、循环获取结构体内的所有成员,并依据分类后的成员的数据类型分别确定所有成员的类型;
S1-2、利用python字典中的getattr函数获取各个成员的值;
S1-3、依据S1-1中确定的成员的类型为各个成员进行赋值处理。
7.如权利要求6所述的python字典和结构体间的快速转换方法,其特征在于,S1-1中,当循环获取的结构体内的成员仍为结构体时,则对获取的结构体再次进行循环获取;当循环获取的结构体内的成员为数组时,则对数组内的元素按照相应的分类后的成员的数据类型进行相应的处理;当循环获取的结构体的成员为除结构体和数组外的其他成员时,则直接对成员进行赋值处理。
8.如权利要求6所述的python字典和结构体间的快速转换方法,其特征在于,S1-1前,还需利用python字典中的isinstance函数验证结构体的参数类型是否错误,是,则结束所述isinstance函数并返回空字典;否,则利用结构体的文件属性循环获取结构体内的所有成员。
9.如权利要求5所述的python字典和结构体间的快速转换方法,其特征在于,S3中,所述第二函数的构建方法具体为:
S2-1、循环获取字典的值和键;
S2-2、利用python字典的getattr函数配合以及异常处理机制判断结构体内的成员的名字是否和字典的键的名字相同,是,则利用python的isinstance函数判断键所对应的成员的值的类型,并依据对应关系将键所对应的成员的值赋值给成员;否,则继续结构体内下一成员的名字的判断。
10.如权利要求9所述的python字典和结构体间的快速转换方法,其特征在于,S2-1中,当循环获取的字典的值仍为字典时,则对获取的字典再次进行循环获取;当循环获取的字典的值为列表时,则继续循环列表中的元素,并根据元素属于的类型进行相应的赋值处理;当循环获取的字典的键在结构体中的类型是字符串时,则对数据直接进行赋值处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于远江盛邦(北京)网络安全科技股份有限公司,未经远江盛邦(北京)网络安全科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011427236.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种简便的外泌体提取方法
- 下一篇:一种用于小动物制动的气体麻醉装置