python学习-day12-json,pickle

本文详细介绍了Python中序列化和反序列化的概念及应用,包括json和pickle模块的使用,展示了如何将数据结构如字典和列表转换为字符串形式,以及如何将字符串还原回数据结构。此外,还探讨了在不同场景下选择合适的方法进行数据持久化存储和信息传输。

视频链接: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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值