分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

20180209-json&pickle模块

发布时间:2023-09-06 01:41责任编辑:胡小海关键词:jsjson

什么是序列化?

  序列化就是把内存里的数据类型转成字符串,以使其能够存储到硬盘中或在网络中传输到远程,因为硬盘和网络传输时只接收bytes

用于序列化的两个模块

  1. json,用于字符串和python数据类型间的转换

  2. pickle,用于python特有的数据类型和python数据类型间进行转换

json模块提供了4个功能:dumps、dump、loads、load   可以跨平台

pickle模块提供了4个功能:dumps、dump、loads、load  只能在python中使用

  json用法

import jsondata = { ???‘role‘: ‘Alex‘, ???‘life‘: 50}# json序列化json_str = json.dumps(data)print(json_str,type(json_str))# 输出# {"role": "Alex", "life": 50} <class ‘str‘># json反序列化data = json.loads(json_str)print(data,type(data))# 输出# {‘role‘: ‘Alex‘, ‘life‘: 50} <class ‘dict‘>

  配合文件操作的json用法

# 序列化配合文件操作with open(‘./tmp/json.pk‘,‘w‘) as fp: ???json.dump(data,fp)# 反序列化配合文件操作with open(‘tmp/json.pk‘) as fp: ???data = json.load(fp)print(data,type(data))# 输出# {‘life‘: 50, ‘role‘: ‘Alex‘} <class ‘dict‘>

  pickle用法 

import pickle# pickle序列化pickle_str = pickle.dumps(data)print(pickle_str,type(pickle_str))# 输出# b‘\x80\x03}q\x00(X\x04\x00\x00\x00lifeq\x01K2X\x04\x00\x00\x00roleq\x02X\x04\x00\x00\x00Alexq\x03u.‘ <class ‘bytes‘># pickle反序列化data = pickle.loads(pickle_str)print(data,type(data))# 输出# {‘life‘: 50, ‘role‘: ‘Alex‘} <class ‘dict‘>

  结合文件操作

# 结合文件操作的pickle序列化with open(‘tmp/pickle.pk‘,‘wb‘) as fp: ???pickle.dump(data,fp)# 结合文件操作的pickle反序列化with open(‘tmp/pickle.pk‘,‘rb‘) as fp: ???data = pickle.load(fp)print(data,type(data))

  注意:pickle序列化后不是字符串,而是字节,所以在文件操作的时候,需要注意要使用 ‘wb‘ 和 ‘rb‘

20180209-json&pickle模块

原文地址:https://www.cnblogs.com/it-q/p/8435968.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved