python I/O读写 字典类型的数据写文件(使用json dumps)
目标:
需要把字典类型的数据写入文件
步骤:
新建一个文件(或者打开一个文件),然后按照函数提供的类型,写文件。但是每个函数都要自己的入参要求,所以要根据需要把参数转化成需要的类型
使用的函数为:
打卡文件的函数
open(path, ‘-模式-‘,encoding=’UTF-8’) 即open(路径+文件名, 读写模式, 编码)
说明:
读写模式:
r :只读
r+ : 读写
w : 新建(会对原有文件进行覆盖)
a : 追加
b : 二进制文件
写文件函数:
将字符串写入文件,返回的是写入的字符长度
由此可见,要写的话,必须是字符串类型,而不能是字典或者其他类型,这个时候我们就需要函数来处理这个字典
处理字典的函数
json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)
(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
(2)json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)
具体的说明可以查看python3 菜鸟教程说的非常清楚 https://www.runoob.com/python3/python3-json.html
def write_to_file(content): #这里面的content是字典类型的数据 with open('result.txt','a',encoding='utf-8') as f: f.write(json.dumps(content,ensure_ascii=False)+'\n') 为了让字典转换成字符串,需要使用json.dumps()函数让字典变成字符串
def write_json(list_all): with open('data.txt','w',encoding='utf-8') as file: file.write(json.dumps(list_all,indent=2,ensure_ascii=False)) ensure_ascii=False,加上这个,就不会让中文变成unicode编码 indent=2,带缩进