任务

在工作中遇到一个问题,需要将字典数据保存到本地,决定保存为json格式文件。
注意:本任务中的字典数据是循环生成的,这就要求循环保存到json中。此外,需要将字典数据中的字符串保存为utf-8,并且自动换行,易于查阅。

解决办法

一、先看将单个字典保存到json文件。

#导包
import json
dic = {'女': 0, '男': 1}
js = json.dumps(dic, ensure_ascii=False)  

fileObject = open('本地地址+要保存的文件名.json', 'w', encoding='utf-8')  
fileObject.write(js+'\n')  
fileObject.close()

二、for循环中将循环生成的字典数据保存到json中,需要将 ‘w’改为’a’

#导包
import json

for i in range():
     ***
     随机产生的dic
     js = json.dumps(dic, ensure_ascii=False)  
     fileObject = open('本地地址+要保存的文件名.json', 'a', encoding='utf-8')  
     fileObject.write(js+'\n')  
     fileObject.close()

注:With open函数打开文件的常用操作:

操作符

含义

r

以只读的方式读取文件。文件的指针将会默认放在文件的开头。

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,则创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。