• 处理json的几种方案


    一、什么是JSON

    其中类文件对象的理解:
    具有read()或者write()方法的对象就是类文件对象,比如f = open(“a.txt”,”r”) f就是类文件对象

    1、json.dumps : 实现python类型转化为json字符串

    json_str = json.dumps(mydict,indent=2,ensure_ascii=False,sort_keys=True)  格式化处理返回json数据
    •  indent : 实现换行和空格,一般为indent=2
    • ensure_ascii=False : 实现让中文写入的时候保持为中文
    •  sort_keys=True : 实现以26个字母顺序排列

    2、json.loads : 把json字符串转化为python的数据类型

    my_dict = json.loads(json_str)

    3、json.dump 实现把python 类型写入类文件对象

    with open(“temp.txt”,”w”) as f:
        json.dump(mydict,f,ensure_ascii=False,indent=2)

    4、json.load 实现类文件对象中的json字符串转化为python类型

    with open(“temp.txt”,”r”) as f:
        my_dict = json.load(f)

    二、实际应用

    1、如果用requests发起的请求

    import json
    
    res = requests.get(url,headers=self.headers)
    
    res = requests.content.decode() #在python3中,res.content 返回的是二进制bytes类型的数据,需要用decode()转成unicode的str类型,当请求头中有Accept-Encoding: gzip, deflate时,返回的响应需要解压,即
    import gzip
    
    ret = gzip.decompress(res.content).decode("utf-8")
    
    res = json.loads(res) #转成json对象,在python里也就是dict类型

    2、如果用scrapy.Requests发的请求

    import json
    import scrapy
    
    res = scrapy.Requests(url,headers=self.headers)
    
    res = res.txt.decode()
    
    res = json.loads(res) #转成json对象,在python里也就是dict类型


    三、什么是jsonpath_rw
    比json好用的东东,当json存在多层数据串的时候应用比较方便

    json_obj = {"student":[{"male":176,"female":162},{"male":174,"female":159}]}
    
    [match.value for match in male]
    [176, 174]

    parse:分析

    • 语句解析:先分析,再查找提取value

    • 先分析,再匹配他们来自哪里

     

     

     

    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    javascript 获取<td>标签内的值。
    关于网页中鼠标动作 onfocus onblur focus()
    web大前端面试——JavaScript
    vue吸顶
    vue单页面应用刷新网页后vuex的state数据丢失的解决方案
    vue 无缝滚动插件vue-seamless-scroll的安装与使用
    杂记
    webpack打包vue项目后,配置可以修改的配置文件
    不知道的CSS
    图片惰性加载(滚动到可视区时 图片才加载)
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/11316105.html
Copyright © 2020-2023  润新知