zoukankan      html  css  js  c++  java
  • json的xpath:简易数据查询

    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]]
    
  • 相关阅读:
    Git的初步学习
    Git的初步学习
    微信小程序我的界面
    微信小程序我的界面
    Day2:html和css
    Day2:html和css
    Day1:html和css
    Day1:html和css
    Java之JDK7的新语法探索
    Java之JDK7的新语法探索
  • 原文地址:https://www.cnblogs.com/tuzkee/p/9564625.html
Copyright © 2011-2022 走看看