python序列化 json和pickle

# 1、什么是序列化
# 序列化指的是把内存的数据类型转成一个特定格式的内容
# 该格式的内容可用于存储或者传输给其它平台使用

# 内存中的数据类型---》序列化----》特定的格式(json or pickle格式)
# 内存中的数据类型《---反序列化《----特定的格式(json or pickle格式)

# 2、为何要序列化
# 序列化得到结果--》特定格式的内容有两种用途
# 1、可用于存储=》用于存档 # 推荐pickle
# 2、传输给其它平台使用=》跨平台数据交互 #推荐json

# 强调:
#    针对于用途1的特定格式:可以是一种专用的格式=》pickle只有python可以识别
#    针对于用途2的特定格式:应该是一种通用的,能被所有语言识别的格式-》json

# 3、如何序列化
# import json
# # 示范1
# # 序列化
# res = json.dumps([1, 'aa', True, False])
# # print(res, type(res))
# # 反序列化
# l=json.loads(res) # 反解,读取json数据
# print(l,type(l))

# 示范2

# 写入到文件的快捷方法
# with open('test.json',mode='wt',encoding='utf-8') as f:
#     json.dump([1, 'aa', True, False],f)

# 从json文件中读取的快捷方法
# with open('test.json',mode='rt',encoding='utf-8') as f:
#     l=json.load(f)
#     print(l,type(l))


# pickle和json的用法基本相同
# import pickle
# a.txt= pickle.dump()
# b=pickle.loads()

# json验证:json 格式兼容的是所有语言通用的数据类型,不能识别某一语言的独有类型
# json.dumps({1,2,3,4,5}) # TypeError: Object of type set is not JSON serializable

# json强调:一定要搞清楚json格式,不要和python混淆
# 比如json的true和python的True,json没有单引号

# json性能太差,有一个优化版ujson比原来的json要快
# import json
# import ujson # ujson和json用法一样,但是比json更快
# # 猴子补丁,第一次import时来替换需要替换的功能
# json.dumps = ujson.dumps
# json.loads = ujson.loads

  

posted @ 2023-02-27 17:02  palx  阅读(31)  评论(0编辑  收藏  举报