今天在这个问题上栽了一下午的跟头,脑袋卡壳了,哈哈!!!很尴尬,但是问题还是被我解决了。好了,言归正传,解决问题才是王道。
给json中,放入多个字典很简单,读出来也很简单,但是怎么理想的操作,且让我们用起来很顺手就很麻烦了。给文件中放入多个字典,我可以想出很多办法,例如将字典字符串话,然后将字符串放入文件中就行了。最后读的时候,我们再以二进制读就是了。但是这样操作很麻烦的,且可操作性是个问题,很麻烦。
下面是我提供的方法,我们可以将多个字典放入列表中,然后将列表存入json文件中就可以了。读的时候,利用json.load()函数可以将这列表读出来,然后遍历就是了。
下面是一个小demo,可以将代码复制下来试试,代码里面有关键的注释,我这个人很懒得,懒得写注释:
import json
dict1 = {'a':1, 'b':2, 'c':3}
dict2 = {'A':1, 'B':2, 'C':3}
dict3 = {'q':1, 'b':2, 'z':3}
dict_list = []
dict_list.append(dict1)
dict_list.append(dict2)
dict_list.append(dict3)
# 其实,我完全可以这样写dict_list = [dict1,dict2,dict3];之所如上述那么些,是让大家知道,我们是动态控制的
with open('demo3.json', mode='w', encoding='utf-8') as f:
json.dump(dict_list, f)
# 将字典列表存入json文件中
with open('demo3.json', mode='r', encoding='utf-8') as f:
dicts = json.load(f)
# 将多个字典从json文件中读出来
for i in dicts:
print(i)
运行结果——文件内容:
运行结果——输出:
很简单,很nice。