json是用来将各种类型与字符类型进行相互转换
import json
# json.dumps操作,一切化为字符串
dict1 = {"a":1, "b":2 }
res = json.dumps(dict1) #res = '{"a": 1, "b": 2}'
# 有中文字符可以使用 json.dumps( data, ensuer_ascii=False)
# json.loads操作,一切复原
dict2 = json.loads(res) #dict2 = {"a":1, "b":2 }
为什么要将数据保存为字符串的样子呢?这主要是为了将其保存在文件中,一来节省存储空间,保存方便;二来数据统一以字符串形式保存,增强了数据可移植性。
# loads读文件数据
f = open('data.json', 'r', encoding='utf-8')
content = f.read()
data = json.loads(cotent)
# load读文件数据
f = open('data.json',encoding="utf-8")
data = json.load(f)
###################################################
# dumps写入文件数据
strData = json.dumps(data,indent=8,ensuer_ascii=False)
with open("data.json",'w‘,encoding='utf-8') as f
f.write(strData)
# dump写文件数据
f = open('data.json','w',encoding='utf-8')
json.dump(data, f, indent=8, ensure_ascii=False)
loads和dumps都不能直接操作文件类型,因此需要将数据read和write。
而load和dump能针对文件类型操作,相当于把read与loads组合成了load,write和dumps组合成dump
dump与dumps
如果把字典写到文件里面的时候,dump()好用;但是如果不需要操作文件,或需要把内容存储到数据库或excel,则需要使用dumps()先把字典转换成字符串,再写入。
不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。