序列化模块

编程入门 行业动态 更新时间:2024-10-17 17:22:37

序列化<a href=https://www.elefans.com/category/jswz/34/1771428.html style=模块"/>

序列化模块

一、json 

json是所有语言都通用的一种序列化格式 ,只支持 列表、 字典、 字符串、 数字 ,
字典的key必须是字符串
1、dumps、loods 
# 在内存中做数据转换 : 
# durps  数据类型  转成  字符串      序列化 
# loods    字符串    转成  数据类型  反序列化 
2、dump、 load 
# 直接将数据类型写入文件,直接从文件中读出数据类型
# dump  数据类型   写入  文件         序列化 
# load    文件          读出  数据类型  反序列化 

3、扩展:特殊的参数

import jsondic= {'key':'你好'}
print(json.dumps(dic,ensure_ascii=False))# 格式化查看:
dic2 ={'username': ['李华','冯芬'],'sex':'male','age':16}
json_dic2= json.dumps(dic2,sort_keys=True,indent=4,separators=(',' , ':'),ensure_ascii=False)
print(json_dic2)

二、pickle

import pickle
#1.支持在python中几乎所有的数据类型
#2.只能在python中使用
dic = {(1,2,3):('a','b'),1:'abc'}
ret = pickle.dumps(dic)
#3.dumps 序列化的結果只能是字节
print(ret)
#b'\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00}\x94(K\x01K\x02K\x03\x87\x94\x8c\x01a\xprint(pickle.loads(ret))
# {(1, 2, 3): ('a', 'b'), 1: 'abc'}#4.在和文件操作的时候,需要用rb wb的模式打开文件
# dump
with open('pickle_file', 'wb') as f:pickle.dump(dic,f)
# Load
with open('pickle_file','rb') as f:ret = pickle.load(f)print(ret,type(ret))# {(1, 2, 3): ('a', 'b'), 1: 'abc'} <class 'dict'>#5.可以多次dump和多次lood
dic = {(1,2,3):('a','b'),1:'abc'}
dic1 = {(1,2,3):('a','b'),2:'abc'}
dic2 = {(1,2,3):('a','b'),3: 'abc'}
# dump
with open('pickle_file', 'wb') as f:pickle.dump(dic,f)pickle.dump(dic1,f) pickle.dump(dic2,f)# Load
with open('pickle_file','rb') as f:while 1:try:ret = pickle.load(f)print(ret,type(ret))# {(1, 2, 3): ('a', 'b'), 1: 'abc'} <class 'dict'># {(1, 2, 3): ('a', 'b'), 2: 'abc'} <class 'dict'># {(1, 2, 3): ('a', 'b'), 3: 'abc'} <class 'dict'>except EOFError:break

更多推荐

序列化模块

本文发布于:2023-11-15 01:03:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1590917.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模块   序列化

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!