1.json模块
json 模块实现不通程序语言的数据转换。
json模块在支持python 中 整型 字符串 列表 字典 元组 布尔值 None 转换为其他语言的类型。
json数据格式格式是bytes(二进制)。
ps:网络传输的数据必须是二进制。
2.序列化/反序列化
序列化:将其他数据类型转为json格式字符串的过程
反序列化:将json格式字符串转换为其他的数据类型的过程
3.数据转换
3.1方法
方法
.dumps 序列化
.loads 反序列化
对汉字会转换为ASCII编码形式的字符串
ensure_ascii=False 关闭后为unicode
文件操作
.dunp 序列化
.load 反序列化
3.2字典转换
import json
dic = {'k1': 1}
st = json.dumps(dic)
print(st, type(st))
dit = json.loads(st)
print(dit, type(dit))
import json
dic2 = {'name': '胡歌'}
res = json.dumps(dic2)
print(res)
res1 = json.dumps(dic2, ensure_ascii=False)
print(res1)
3.3元组转换
import json
tuple1 = (1, 2, 3, 4)
res = json.dumps(tuple1)
print(res, type(res))
res1 = str(tuple1)
print(str(res1), type(res1))
3.4写文件
import json
dic1 = {'k1': 1}
dic2 = {'k2': 2}
with open('a.txt', mode='w', encoding='utf8') as f:
res1 = json.dumps(dic1)
f.write('%s\n' % res1)
res2 = json.dumps(dic2)
f.write('%s\n' % res2)
with open('a.txt', mode='r', encoding='utf8') as f:
for line in f:
res = json.loads(line)
print(res)
3.5文件操作
对类型先转换再直接写入文件
写文件
json.dump(内容, 文件句柄f)
读文件
json.load(f)
import json
dic = {'k1': 1}
with open('a.txt', mode='w', encoding='utf8') as f:
json.dump(dic, f)
with open('a.txt', mode='r', encoding='utf8') as f:
res = json.load(f)
print(res)
4.pickle模块
pickle模块,它能够实现任意对象与文本之间的相互转化,仅在Python中使用。
转为二进制类型。
方法:
.dumps() 序列化
.load() 反序列化
import pickle
d = {'k1': 1}
res = pickle.dumps(d)
print(res)
import pickle
d = {'k1': 1}
with open('a.txt', mode='wb') as f1:
pickle.dump(d, f1)
with open('a.txt', mode='rb') as f1:
res = pickle.load(f1)
print(res)
|