序列化:将python中的字典,列表对象转换成指定形式字符串。
反序列化:将指定格式的字符串转换成字典,列表对象。
序列化:dumps、dump
import json
dic = {
'haha' : ['football','pingpang','smoke'],
'age' : 20,
'score' : 97.6,'name' :'zhangsan'
}
#序列化:将字典对象转换成了json格式的字符串,只有字符串可以写入文件,如果出现中文乱码,则添加这行参数ensure_ascii=False,默认是使用ascii
r = json.dumps(dic,ensure_ascii=False)
with open('json.txt','w',encoding='utf-8') as f :
f.write(r)
import json
dic = {
'haha' : ['football','pingpang','smoke'],
'age' : 20,
'score' : 97.6,'name' :'zhangsan'
}
#序列化:将字典对象转换成了json格式的字符串,只有字符串可以写入文件
with open('json.txt','a+') as f:
json.dump(dic,f) # dump直接序列化后写入文件
反序列化:loads、load
import json
# 反序列化:将字符患转换成了字典对象,此时这个对象python才可以直接解释
with open('json.txt','r',encoding='utf-8') as f:
strJson = f.read()
dic = json.loads(strJson)
print(type(dic))
print(dic)
返回结果:
<class 'dict'>
{'haha': ['football', 'pingpang', 'smoke'], 'age': 20, 'score': 97.6, 'name': 'zhangsan'}
import json
# 反序列化:将字符患转换成了字典对象,此时这个对象python才可以直接解释
with open('json.txt','r',encoding='utf-8') as f:
dic = json.load(f) # load直接将整个文件反序列化
print(type(dic))
print(dic)
返回结果:
<class 'dict'>
{'haha': ['football', 'pingpang', 'smoke'], 'age': 20, 'score': 97.6, 'name': 'zhangsan'}