分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

JsonQuery

发布时间:2023-09-06 02:12责任编辑:苏小强关键词:暂无标签
class JsonQuery(object): ???def __init__(self, data): ???????super(JsonQuery, self).__init__() ???????self.data = data ???def get(self, path, default=None): ???????if self.data is None or path == ‘‘: ???????????return self.data ???????query_keys = path.split("/") ???????key = query_keys[0] ???????left_path = ‘/‘.join(query_keys[1:]) ???????if isinstance(self.data, list): ???????????return [JsonQuery(v).get(path, default) if v else None for v in self.data] ???????else: ???????????return JsonQuery(dict.get(self.data, key, default)).get(left_path, default)

运行效果:

d = {"main":[{"x":[{"x1":1,"x2":2},{"x1":11,"x2": 12}],"y":2},{"x":[{"x1":3,"x2":4}],"y":4}]}>>> info = JsonQuery(d)>>> info.get(‘main‘)[{‘y‘: 2, ‘x‘: [{‘x2‘: 2, ‘x1‘: 1}, {‘x2‘: 12, ‘x1‘: 11}]}, {‘y‘: 4, ‘x‘: [{‘x2‘: 4, ‘x1‘: 3}]}]>>> info.get(‘main/x‘)[[{‘x2‘: 2, ‘x1‘: 1}, {‘x2‘: 12, ‘x1‘: 11}], [{‘x2‘: 4, ‘x1‘: 3}]]>>> info.get(‘main/x/x1‘)[[1, 11], [3]]

JsonQuery

原文地址:https://www.cnblogs.com/tuzkee/p/9564625.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved