嵌套json, list的key转成 json_data["A"

2019-02-27  本文已影响0人  GovS_777

# ==============================================================
# 嵌套json, list的key转成 json_data["A"][0]["name"] 格式,方便直接获取对应key值(类似于jmeter的json插件获取返回结果)
# EG:{"data":{"name":["A", "b"]} --> data.name.0.A
# key中间带有. 情况写法示例:
#  1.{"10.10.10.10": 77777777}  --> ..str(10.10.10.10)
#  2.{"data.policyNo": 88888888}  --> ..data.policyNo
#  3.{"data": {"10.10.10.10": {"A": "aaa"}}}  --> data..str(10.10.10.10)..A
#  4.{"data": {"data.policyNo": {"A": "bbb"}}}  --> data..data.policyNo..A
def get_nestdict_trasKey(self, key_data):
    obj = ""
    if ".." in key_data:  # 处理key中带有.的情况方法2
        for i in key_data.split(".."):
            if i != "":
                if is_numeric(i):
                    obj = "%s[%s]" % (obj, i)
                else:
                    if 'str(' in i:
                        i = i[i.find('(') + 1:-1]
                    obj = "%s['%s']" % (obj, i)
    else:
        for i in key_data.split("."):
            if is_numeric(i):
                obj = "%s[%s]" % (obj, i)
            else:
                if 'str(' in i:
                    i = i[i.find('(') + 1:-1]
                obj = "%s['%s']" % (obj, i)
    return obj

上一篇下一篇

猜你喜欢

热点阅读