dump、load、dumps、loads,json与python数据数据转换

###平时使用python来进行文件读写时,免不了会出现将字典、list数据类型的字符写入到文件中,又或者将文件中读取的数据转换成python数据类型,然后易于操作等,那么此时就需要学会二者之间的互相转换 ###之间很长一段之间都傻傻分不清楚dump、load、dumps、loads,它们什么时候用,用来干什么,现在终于了解明白清楚了,现在一一记录下来,说明每一个的用法

import json

info={
    
    "name":"xiaoming",
    
    "age":12
}

print(type(info)) #dict

####将字典类型的info写入文件

with open ('info.txt','w+',encoding='utf-8') as f:

    f.write(info)  
    #此时会报错,提示写入文件时,必须写的时字符串类型
那么此时,就需要把字典转成字符串写入到文件中,而json字符串就是长得和字典很相像的字符串

那么接下来,我们需要将python数据类型转化成json类型,然后操作文件的读写

#方法一:字典转成json串,然后写入文件
new_info = json.dumps(info)

print(type(new_info)) #str ,此时new_info是字符串类型,再将new_info写入到文件中

with open ('info.txt','w+',encoding='utf-8') as f:

    f.write(new_info)
  
#方法二:直接使用json.dump()

with open ('info1.txt','w+',encoding='utf-8') as f:

    json.dump(info,f) #将字典转化成j son字符串,同时写入文件

-------------------------------------我是分割线---------------------------------------

####那么如何将从文件内读取处理的json串转化成python能操作的数据类型呢?这里将使用到load,loads方法,把json串转化成python数据类型

下面举例说明

拿咱们上边写好的"info.txt"文件来说,里边存好了写入的json串

方法一:将文件内容读取出来之后,然后转化类型

第一步读取文件
with open('info.txt','r+',encoding='utf-8') as fr:

    con = fr.read()

    print('我是文件内容:%s,我的类型是%s'%(con,type(con)))

    #我是文件内容:{"name": "xiaoming", "age": 12},我的类型是<class 'str'>

#第二步,将json串转化成python数据类型
new_con = json.loads(con)

print(type(new_con)) 
#<class 'dict'> 此时我们就可以使用python处理python数据类型了~
方法二:直接在操作文件的时候使用json.load(文件对象),这样读取出来的已经转好为python数据类型

with open('info.txt','r+',encoding='utf-8') as fr:

    con=json.load(fr)

    print('我是文件内容:%s,我的类型是%s' % (con, type(con)))

    #我是文件内容:{'age': 12, 'name': 'xiaoming'},我的类型是<class 'dict'>
原文地址:https://www.cnblogs.com/zhuyue1/p/7146853.html