• 关于json数据的过滤、获取


    json数据:book.json

    {
        "store": {
            "book": [
                {
                    "category": "文学",
                    "author": "路遥",
                    "title": "平凡的世界",
                    "price": 8.95
                },
                {
                    "category": "文学",
                    "author": "席慕蓉",
                    "title": "穆斯林的葬礼",
                    "price": 12.99
                },
                {
                    "category": "历史",
                    "author": "二月河",
                    "title": "康熙大帝",
                    "isbn": "0-553-21311-3",
                    "price": 8.99
                },
                {
                    "category": "言请",
                    "author": "琼瑶",
                    "title": "还珠格格",
                    "isbn": "0-395-19395-8",
                    "price": 22.99
                }
            ],
            "bicycle": {
                "color": "red",
                "price": 19.95
            }
        },
        "expensive": 10
    }

    处理、过滤:

    import json
    import jsonpath
    
    #将json格式字符串转化为python对象
    ojb = json.load(open('book.json','r',encoding='utf8'))
    #print(ojb)
    
    #查找所有书的所有作者
    #book是一个列表
    #ret = jsonpath.jsonpath(ojb,'$.store.book[*].author') #book[*]找所有 后面要加*
    #ret= jsonpath.jsonpath(ojb,'$..author')
    #print(ret)
    
    #查找store下面所有字典  返回一个列表
    # ret= jsonpath.jsonpath(ojb,'$.store.*')
    # print(len(ret))
    
    #查找store下面所有的price
    # ret= jsonpath.jsonpath(ojb,'$.store..price')
    # print(ret)
    # print(len(ret))
    
    #找第三本书  返回一个列表
    # ret= jsonpath.jsonpath(ojb,'$..book[2]')    #json的下标是从0开始
    # ret= jsonpath.jsonpath(ojb,'$..book[0,1]') # 找前两本书
    # print(ret)
    # print(len(ret))
    
    
    #找最后一本书
    # ret= jsonpath.jsonpath(ojb,'$..book[(@.length-1)]')
    # print(ret)
    # print(len(ret))
    
    #有isbn元素的书
    #ret= jsonpath.jsonpath(ojb,'$..book[?(@.isbn)]')
    # print(ret)
    # print(len(ret))
    
    #找键price:价格低于10的书
    ret= jsonpath.jsonpath(ojb,'$..book[?(@.price<10)]')
    print(ret)
    print(len(ret))

    json数据、python对象、字典格式的相互转化

    jsonpath模块
    用来解析josn数据使用的
    python处理josn格式用到的函数
        import json
        json.dumps() :将字典或者列表转化为json格式的字符串
        json.loads() :将json格式的字符串转化为python对象
        记忆方法:前两个有s,是字符串和两个格式之间的转化
    
        json.dump() :将字典或者列表转化为json格式的字符串并且写入到文件中
        json.load() :从文件中读取json格式字符串,转化为python对象
        记忆方法:后两个不带s,属于写入文件和从文件中读取
    
    
    import json
    it = [{'name':'王二小','age':'30'},
          {'name':'周三','age':'29'},
          {'name':'李四','age':'28'},
          {'name':'王五','age':'27'}
          ]
    string = json.dumps(it) #将字典或者列表转化为json格式的字符串
    #print(string)
    
    
    obj = json.loads(string)  #将json格式的字符串转化为python对象
    #print(type(obj))
    作者:求知鱼

    -------------------------------------------

    个性签名:你有一个苹果,我有一个苹果,我们交换一下,一人还是只有一个苹果;你有一种思想,我有一种思想,我们交换一下,一个人就有两种思想。

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

    独学而无友,则孤陋而寡闻,开源、分享、白嫖!

  • 相关阅读:
    Metasploit命令大全
    nmap所有参数详解
    Kali Linux 命令集
    十大编程算法助程序员走上大神之路
    新入行程序员需要知道的十个秘密
    浅谈c#枚举
    php 常用的系统函数
    php大型网站如何提高性能和并发访问
    【转】Oracle + PHP Cookbook(php oracle clob 长度超过4000如何写入)
    干货:小程序开发文档和设计指南要点详解
  • 原文地址:https://www.cnblogs.com/Qiuzhiyu/p/12183008.html
Copyright © 2020-2023  润新知