允许使用xpath语法分析json文件

xjson的Python项目详细描述


# xjson

xjson 是一个能让你用xpath 语法来解析的json的工具

##Overview

在处理json的时候,如果json 列表有很多元素的话,需要一个个迭代去处理。然而在xpath 却不是这样的,xpath 可以把路径下的都提取出来,这样就能把提取 变成一行,方便写在配置文件中。 xjson 做的就是这么一件事。让你能够以xpath的形式解析json。

{
    "success":true,
    "message":"操作成功!",
    "result":[
        {
            "firstCategoryList":[
                {
                    "name":"工具",
                    "id":"2"
                }
            ],
            "secondCategoryList":[
                {
                    "name":"钻削类电动工具",
                    "id":"142",
                    "list":[
                        {
                            "name":"手电钻",
                            "id":"925"
                        },
                        {
                            "name":"磁座钻",
                            "id":"928"
                        }
                    ]
                },
                {
                    "name":"磨削类电动工具",
                    "id":"143",
                    "list":[
                        {
                            "name":"角向磨光机",
                            "id":"936"
                        },
                        {
                            "name":"磨具电磨",
                            "id":"937"
                        }
                    ]
                }
            ]
        }
    ]
}

如果用json,需要把三级分类提取出来的话,你需要写成

for result in json_content["result"]:
    for second_category in result["secondCategoryList"]:
        for third_category in second_category["list"]:
            print third_category["name"]

不仅混乱,而且需要时刻注意各层嵌套之间的关系,而在 xjson 中,你只需要按照层次关系写成

result/secondCategoryList/list/name

就可以把三级分类全部提取出来了。 而且这样做的话,放在配置文件中,通过配置来提取json是非常方便的。

Requirements

  • python2.7

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

推荐PyPI第三方库


热门话题
httpclient java。网SocketException:将json负载发布到rest api时管道破裂(写入失败)   java如何获取类名?   java有界泛型类型和仅父类型之间的区别是什么?   复杂形状的java冲突检测   java是否可以从列表的特定元素映射到self?   子类的java大小   java在2D数组中的特定位置替换字符?   安全性如何创建Java沙盒?   使用JPA存储库的spring批处理ItemWriter的java持久化问题   java如何从自己的自动配置中使用WebMvcConfigurationSupport   Java Spring 3 MVC控制器显式加载服务   java Pentaho删除了SolutionRepositoryService服务?   java无法从firebase检索数据   序列化可以“序列化”吗在Java中使用注释的对象   java无法在服务中自动连接假客户端   java使用数组内部的乘法从另一个数组填充数组   为什么JavaAPI不为我们提供用于当前环境的有界队列实现?   java如何使用commons ImapClient获取有用的邮件信息?不仅仅是布尔状态,而是真实信息?   Java NIO:allocate或allocateDirect,当我每次写入SocketChannel时创建ByteBuffer时