节俭转换工具:json2strift,thrift2json

thrift-converter的Python项目详细描述


节俭转换器

一个python实现的工具,用于在json和thrift之间进行转换。

安装

pip install thrift-converter

为什么要构建此工具:

  1. 类在thrift gen py中使用thrift_spec()进行反序列化,但是Enum对象被简单地视为I32,而在json中,它被存储为名称字符串。
  2. set在标准json中不是json可序列化的,我们可以将{'a', 'b', ..}视为{None: ['a', 'b', ...]}进行区分。

如何:

  1. 通过ptsd
  2. 通过递归遍历ast反序列化thrift对象。

待办事项:

其他

用法

示例:demo

importjsonfromthrift_converterimportJsonThriftConverter,ThriftJsonConverterthrift_file='demo.thrift'object_name='Group'json2thrift=JsonThriftConverter(thrift_file).convertthrift2json=ThriftJsonConverter(thrift_file).convertobj=gen_fake_obj()# Group(id=-1, worker_map={999: Worker(id=999, tasks=[Task(id=727, status=0, action=888, valid=True, msgs={'msg'})])})js=thrift2json(obj,object_name)js_str=json.dumps(js)# {"id": -1, "worker_map": {"999": {"id": 999, "tasks": [{"id": 727, "status": 0, "action": "UP", "valid": true, "msgs": {"null": ["msg"]}}]}}}obj=json2thrift(json.loads(js_str),object_name)# Group(id=-1, worker_map={999: Worker(id=999, tasks=[Task(id=727, status=0, action=888, valid=True, msgs={'msg'})])})

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
检查java中两个链表之间的子集   java仅在findViewById()下显示一个ImageButton   在Java Graphics2D中,文本如何在矩形上居中对齐?   java需要一个用于电子表格计算器的正则表达式   ^java中的运算符   java通过一些属性配置文件根据环境动态更改wsdl端点URL   java Ebean/Play框架关系未更新   集合如何将POJO列表转换为Java流中的映射<String,List>?   java为什么JFrame不显示整个图像?   java如何将调用静态导入的泛型方法的结果传递给另一个方法?   迭代器或foreach中的java延迟   需要java socket logback日志接收器   在Java中初始化Map的静态数组   雅加达邮件Java MimeMail:解码后获得额外字符   java为什么这个xmldom解析器不能正确解析rtept、name和cmt标记?   java如何刷新Log4J2中的异步记录器(带中断器)   java使用构建插件pom生成的jar。xml作为同一pom中的依赖项   java基于位置的序列ADT如何在O(1)时间内插入元素?   java ORM实体与DDD实体   Java对象分配