zoukankan      html  css  js  c++  java
  • python--爬虫之JSON于JsonPath

    JSON

    json的引入

    在python中json作为一个内建库不需要额外安装,只需要使用import json执行引入

    json模块的功能

    在python中json模块提供了四个功能:dumpsdumploadsload

    • json.loads()
      将json格式字符串编码转换为python对象。
    • json.dumps()
      把一个Python对象编码转换成Json字符串,json.dumps() 序列化时默认使用的ascii编码,如果想获取utf-8格式可以使用json.dumps(str, ensure_ascii=False)
    • json.dump()
      将Python内置类型序列化为json对象后写入文件json.dump(list, open("list.json","w"), ensure_ascii=False)
    • json.load()
      读取文件中json形式的字符串元素 转化成python类型json.load(open("list.json"))

    JsonPath

    JsonPath的引入

    首先使用pip安装pip install jsonpath,然后引入import jsonpath

    JsonPath的使用

    表达式 描述
    $ 根节点
    @ 现行节点
    .or[] 取子节点
    .. 不管位置,选择所有符合条件的对象
    * 匹配所有元素节点
    [] 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
    [,] 支持迭代器中做多选。
    ?() 支持过滤操作.
    () 支持表达式计算

    实例

    from urllib.request import *
    import jsonpath
    import json
    
    url = 'http://www.lagou.com/lbs/getAllCitySearchLabels.json'
    header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36"}
    request = Request(url, headers=header)
    response = urlopen(request)
    html = response.read()
    
    obj = json.loads(html)
    cityList = jsonpath.jsonpath(obj, '$..name')
    
    print(cityList)
    
  • 相关阅读:
    C++输入与输出
    数组与指针
    MFC+WinPcap编写一个嗅探器之零(目录)
    netty源码分析之揭开reactor线程的面纱(二)
    netty源码分析之揭开reactor线程的面纱(一)
    Vert.x 线程模型揭秘
    理解 RxJava 的线程模型
    Java RESTful 框架的性能比较
    Java借助CountDownLatch完成异步回调
    在 Java 中运用动态挂载实现 Bug 的热修复
  • 原文地址:https://www.cnblogs.com/peilanluo/p/10411673.html
Copyright © 2011-2022 走看看