1.3.4 python解析json文件数据

    技术2022-07-16  75

    Json介绍

           JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它是JavaScript的子集,易于人阅读和编写。

    json是一种通用的数据类型

    一般情况下接口返回的数据类型都是json

    长得像字典,形式也是{key:value}

    其实json是字符串

    字符串不能用key、value来取值,所以要先转换为字典才可以

     

    前端和后端进行数据交互,其实就是JS和Python进行数据交互

     json中常用的方法

    在使用json这个模块前,首先要导入json库:

      import json

     

    方法描述json.dumps()将 Python 对象编码成 JSON 字符串json.loads()将已编码的 JSON 字符串解码为 Python 对象json.dump()将Python内置类型序列化为json对象后写入文件json.load()读取文件中json形式的字符串元素转化为Python类型

     

    json.dumps() 使用

    #-*- coding:utf-8 -*-##-------------------------------------------------------------------------#ProjectName: Python2020#FileName: JsonTest.py#Author: mutou#Date: 2020/5/31 16:18#Description:json模块的四个方法详细使用#--------------------------------------------------------------------------#导入模块:import json#调用dumps 声明一下对象 列表 元组 字典 字符串 数值型;dupms表示的是将python中的任意对象转成字符串对象;get_list_tostr=json.dumps([1,3,43])print(type(get_list_tostr))get_dict_tostr=json.dumps({"name":"wood","age":10})print(type(get_dict_tostr))print(type(json.dumps(1)))print(json.dumps("wood")) #相当于('"wood"')print("wood")

    执行结果是:

     

    json.loads()使用​​​​​​​

    import json#loads:与dumps相对应的;会将字符串中的字符内容自动转换成与之字符定义相对应的python对象str2="[1,3,34,45]"str3="{'name':'wood'}"get_str_tolist=json.loads(str2)print("该值的类型是:",type(get_str_tolist))

    执行结果:

     

    json.dump()使用​​​​​​​

    import json#dump:将下面dict1字典写入到json格式文件中去;dump必须与文件流对象同时使用,所以一般是将当前的python对象写入到json格式文件中,并可以设定一定的格式dict1={"name":"wood","age":10,"sex":"男"}with open("json_test.json","w") as fp: #fp.write(json.dumps(dict1)) 表示的是将dict1以字符串的形式写入到json_test.json格式文件中 json.dump(dict1,fp,indent="\t",ensure_ascii=False) #现在已经以json格式写进去,具有一个参数indent可以很好的显式json的格式,该参数即可以传入int类型也可以是str类型

    执行结果:

     

    json.load()使用​​​​​​​

    #load方法:与dump与之对应with open("json_test.json") as fp: #print(fp.tell()) print(type(fp.read())) #流一旦被使用则其指针会指向文件的末尾,那么此时流则无任何内容; #可以将流的指针进行设定偏移 fp.seek(0) #表示的是重新将流的指针设定偏移到最开始位置 print(type(json.load(fp))) #load获取的数据是字典类型而非字符串; # print(fp.tell()) #可以获取当前流指针的位置;

     

    执行结果:

     

    总结:不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。

     

    附录:

    python数据类型与json数据类型的映射关系

    pythonjsonstr, unicodestringdictobjectlist, tuplearrayint, long, floatnumberFalsefalseTruetrueNonenull

    了解更多信息关注公众号

    Processed: 0.011, SQL: 9