json文件简介及借助于python解析json文件


Author:qyan.li

Date:2022.6.13

Topic:浅析Json文件使用以及借助于Python语言操作Json文件

一、写在前面:

         ~~~~~~~~         前段时间随手翻python编程与实践,发现其中有一章节讲述Json文件的解析与地图的构建。Json文件自己听说过很多次,也偶有接触,但是始终不太清楚Json文件到底是什么,有什么用,以及怎么使用。所以简单的学习和整理一下有关Json文件的内容,顺便写篇博文记录一下。

二、Json文件简介与python解析

         ~~~~~~~~         Json文件的详细官方定义,自己也没有深刻的了解,按照个人的理解,Json文件是能够保留原始数据类型的文件(个人理解)。举个简单的栗子可能会更加的清晰,明确,比如,利用python语言将一个程序生成的列表list = [1,2,3,4,5,6,7,8,9]存入txt文件,当你读取该txt文件时,读取出的数据内容,形式可能是一样的,但是利用type检验数据类型,发现读取出来是字符串,这就意味着此时针对于此对象,已经不能使用list的相关方法进行操作,丧失原来的特性,而只能字符串的方法进行操作。但是在某种程度上,json文件可以弥补这一点:向json文件中写入字典,list取出时可以保留原始的数据类型,方便后续在程序中进行操作。

         ~~~~~~~~         在这里可能会涉及序列化和反序列化的概念:序列化是指将对象转化为字节序列,反序列化则是指将字节序列恢复重建为对象。序列化和反序列化的目的在于对象状态的保存和重建。序列化和反序列化使得在传递和保存对象时,可以保证对象的完整性和可传递性。将对象转化为有序字节流,以便在网络上传输或者保存在本地文件中。


         ~~~~~~~~         借助于python语言操作json文件,主要是借助于json模块,可以完成json文件的写入和读取,下面会结合具体的代码,简要的说明一下python中json模块的使用:

  • 将python对象写入json文件中

             ~~~~~~~~         将python对象写入json文件中,主要借助于json模块的dumps和dump函数,dumps()将python对象转换为json对象,dump()将python对象以json对象的形式写入json文件中

    def writeIntoJsonFile():
        ## 创建python对象
        TestDict = {
          
          
            'name':'liqiyan',
            'age':10,
            'address':'chengdu',
            'friends':['dale','blender','mark']
        }
        TestLst = ['a','b','c','d']
        IntoData = [TestDict,TestLst]
    	## 将python对象转化为json对象
        JsonData1 = json.dumps(TestDict)
        JsonData2 = json.dumps(TestLst)
        # print(type(JsonData2)) # json对象的格式为字符串str
    
    	## 将python对象写入json文件
        with open('./Test.json','w') as f:
            # json.dump(JsonData,f)
            json.dump(IntoData,f)
    

    将python对象写入json文件注意点Tips:

    dump(data,file)函数注意第一个参数为python对象,而并非dumps后的对象,及传入上述代码中的应该为TestDict,TestLst,IntoData类型的python对象,而非JsonData1,JsonData2类型的json对象,如果传入json对象,json文件中的内容会多出许多斜杠

  • 读取json文件为python对象

             ~~~~~~~~         将json文件中的内容读取出来,主要借助于json模块的load和loads函数,load函数将json文件内容读取出来形成python对象,而loads函数则将json类型的字符串转换为python的对象

    def ReadJsonFile(FilePath):
        ## load函数读取json文件
        with open(FilePath,'r') as f:
            object = json.load(f)
            print(object) # type->dict
        
        ## loads函数还原python对象
        TestDict = {
          
          'name':'qyan.li','age':10}
        JsonDict = json.dumps(TestDict) # type->str
        PythonDict = json.loads(JsonDict) # type->dict
    

         ~~~~~~~~          上述代码展示借助于load函数读取json文件的一般方法,读取出来的直接为转化后的python对象,当json文件中不只有一个数据时,读取出来是以列表的i形式存放的。loads函数作用在于将json对象(与dumps相对应)转化为python对象。

三、小总结

         ~~~~~~~~         Json文件在某种情况为我们提供方便,尤其在涉及程序生成的变量的文件保存,以后就不必一定使用txt文件,在某些情况下,Json文件可能会是一种更好的选择。

猜你喜欢

转载自blog.csdn.net/DALEONE/article/details/125338747