Python自动化测试(2) :thrift到json转换

本文介绍了在Python自动化测试中如何处理从Thrift结构转换为JSON的数据,提供了一个统一转化的脚本解决方案,适用于处理复杂的数据转换问题。
摘要由CSDN通过智能技术生成

Python自动化模拟构造数据的过程中,经常会遇到复杂的json转换为thrift结构的情况,下面统一转化的脚本就能帮助解决问题:

def json_thrift_convertor2(src_json, dest_struct, ignore_unknow_key=False):
    """
        @src_json:    dict loads from user pass json body
        @dest_struct: final thrift type after parse
        @ignore_unknow_key: default False, if one key in src_json but not
            in thrift proto define, throw an exception(False) or just
            ignore(True)
    """
    try:
        for (k, v) in src_json.items():
            # 此处需要进行field检查,确认对应的field`s在thrift结构的proto定义中,
            # 此处如果不加检查,其实__setattr__依然可以给目的结构加入不存在的key
            if not dest_struct._tspec.has_key(k):
                if not ignore_unknow_key:
                    print("user`s fields(%s) not exist in thrift proto" % k)
                    raise UnknowInputFieldsError(
                        "Check input, field(%s) not exist in thrift proto" % k)
                else:
                    print("user input fields(%s) not exist in thrift proto" % k)
            if type(v) is 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值