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)
    
  • 相关阅读:
    什么是Java
    程序有问题解决方法
    面向对象三大特征
    实例变量和局部变量
    内存管理
    常见面试题(更新中)
    多态
    设计规则
    内部类
    编程英语
  • 原文地址:https://www.cnblogs.com/peilanluo/p/10411673.html
Copyright © 2011-2022 走看看