视频链接:https://www.bilibili.com/video/BV1SE411N7Hi?p=79
总结:https://guobaoyuan.gitee.io/new_book/Python/17-1%20%E5%BA%8F%E5%88%97%E5%8C%96.html
以下内容仅供个人学习使用,侵删
#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
序列化:将一些特殊的数据(字典、列表)转换成字符串
反序列化:将字符串转换成一些特殊的数据
json,pickle
json对数据有格式要求,要求字符串里所有的键、值必须是双引号,而不是单引号s='{"键":"值"}'
对文件(持久化存储):dump load
对字符串(信息传输):dumps loads
'''
import json
#字符串-》字典
s='{"alex":"alexsb"}'
new_dic=json.loads(s)#反序列
print(new_dic,type(new_dic))#{'alex': 'alexsb'} <class 'dict'>
#字典-》字符串
dic={'key':1}
s=json.dumps(dic)
print(repr(s))#'{"key": 1}'
#当中文序列不正常显示时
dic={'宝元':'高雅'}
s=json.dumps(dic)
print(repr(s))#'{"\\u5b9d\\u5143": "\\u9ad8\\u96c5"}'#以unicode码位存储
s=json.dumps(dic,ensure_ascii=False)
print(repr(s))#'{"宝元": "高雅"}'
#手写的字符串,想序列成对象的话,要求你键和值的引号必须是双引号
s='{"":""}'
s='{"alex":"alexsb"}'
new_dic=json.loads(s)#反序列
print(new_dic,type(new_dic))
#---------------------------------------
# #将字典用json写入文件
# dic={'key':1}
# f=open('day11_homework_jd_login','a',encoding='utf-8' )
# f.write(json.dumps(dic)+'\n')
# f.close()
#用json读取文件内容
f=open('day11_homework_jd_login','r',encoding='utf-8' )
for i in f:
print(repr(i))
print(json.loads(i),type(json.loads(i)))
#--------------------------------------------
'''
pickle是python独有的
pickle可以序列任何东西
json只能序列字典和列表
'''
import pickle
def func():
print(1)
s=pickle.dumps(func)
print(s)
func1=pickle.loads(s)
func1()
本文详细介绍了Python中序列化和反序列化的概念及应用,包括json和pickle模块的使用,展示了如何将数据结构如字典和列表转换为字符串形式,以及如何将字符串还原回数据结构。此外,还探讨了在不同场景下选择合适的方法进行数据持久化存储和信息传输。

246

被折叠的 条评论
为什么被折叠?



