任务
在工作中遇到一个问题,需要将字典数据保存到本地,决定保存为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+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |