美文网首页
json模块与jsonpath模块

json模块与jsonpath模块

作者: 午夜丶小学徒 | 来源:发表于2018-10-28 17:47 被阅读0次

    一、json模块

    • json.dumps()
    # 将python对象转为json对象
    jsonData = json.dumps(dictData)
    print(jsonData)
    print(type(jsonData))
    
    • json.dump()
    # 将字典(python对象)写入到本地(json对象)
    with open('text1.json','w') as f:
        json.dump(dictData,f)
    
    • json.loads()
    # 将json对象转为python对象
    dictData1 = json.loads(jsonData)
    print(dictData1)
    print(type(dictData1))
    
    • json.load()
    # 读取本地的text.json文件 读取到的内容为python对象(字典)
    with open('text1.json','rb') as f:
        data = json.load(f)
    print(data)
    print(type(data))
    
    • 传统使用
    books = json.load(open("./book.json",'r',encoding='utf-8'))
    # print(books)
    print(books['store']['book'][0]['price'])
    # 查找所有的book的价格
    b = books['store']['book']
    for i in b:
        print(i['price'])
    

    二、jsonpath模块

    • 安装
    - pip install jsonpath
    
    • 基本使用
    # 1.导包
      import jsonpath
    # 2.基本使用
      # 用jsonpath(类比xpath)
      # /html/body/div
      # 在jsonpath中$代表根节点、“.”代表当前节点的子节点,“..”代表当前节点的后代节点
      ret = jsonpath.jsonpath(books,"$.store.book")
      ret = jsonpath.jsonpath(books,"$.store.book[1]")
      ret = jsonpath.jsonpath(books,"$.store.book[*]")
      ret = jsonpath.jsonpath(books,"$.store.book[*].price") # 要取里面的内容 必须加’*‘
      ret = jsonpath.jsonpath(books,"$..author")
      ret = jsonpath.jsonpath(books,"$..book[:3]") # 如果是列表 可以切片
      print(ret)
    

    相关文章

      网友评论

          本文标题:json模块与jsonpath模块

          本文链接:https://www.haomeiwen.com/subject/odcmtqtx.html