当前位置: 代码迷 >> 综合 >> python标准库—json,序列化模块
  详细解决方案

python标准库—json,序列化模块

热度:86   发布时间:2023-10-08 16:26:55.0

序列化:将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'}