Python – 使用jsonpickle库对Python类对象进行json序列化和json反序列化操作
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Python – 使用jsonpickle库对Python类对象进行json序列化和json反序列化操作
原文链接:https://www.stubbornhuang.com/1469/
发布于:2021年07月30日 15:29:49
修改于:2021年07月30日 15:29:49
1 Python类对象的json序列化和json反序列化
python类对象json序列化的定义:将类对象转换为可通过网络传输或可以存储到本地磁盘的Json数据格式的过程称为序列化;
python类对象json反序列化的定义:将Json转化为python类对象的过程称为反序列化;
2 jsonpickle库介绍
官方地址:http://jsonpickle.github.io/,关于该库的更多用法请参考官方文档。
2.1 jsonpickle安装
- pip
pip install jsonpickle
- conda
conda install jsonpickle
2.2 jsonpickle的使用
3 使用jsonpickle库对Python类对象序列化和反序列化
3.1 序列化
代码:
import jsonpickle
class RequestArgs:
def __init__(self,name,video_path):
self.name = name
self.video_path = video_path
class RequestApi:
def __init__(self, funcode, token, reqeuestargs_object):
self.funcode = funcode
self.token = token
self.args = reqeuestargs_object
if __name__ == '__main__':
requestApi = RequestApi('101101','2ec45770-b897-4cd0-8ae1-e65ab065a661',RequestArgs('liming','liming.mp4'))
john_string = jsonpickle.encode(requestApi,unpicklable=False)
print(john_string)
序列化结果:
{
"funcode": "101101",
"token": "2ec45770-b897-4cd0-8ae1-e65ab065a661",
"args": {
"name": "liming",
"video_path": "liming.mp4"
}
}
3.2 反序列化
import jsonpickle
class RequestArgs:
def __init__(self,name,video_path):
self.name = name
self.video_path = video_path
class RequestApi:
def __init__(self, funcode, token, reqeuestargs_object):
self.funcode = funcode
self.token = token
self.args = reqeuestargs_object
if __name__ == '__main__':
json_str = '{"funcode": "101101", "token": "2ec45770-b897-4cd0-8ae1-e65ab065a661", "args": {"name": "liming", "video_path": "liming.mp4"}}'
requestApi_dict = jsonpickle.decode(json_str)
requestApi = RequestApi(requestApi_dict['funcode'],requestApi_dict['token'],RequestArgs(requestApi_dict['args']['name'],requestApi_dict['args']['video_path']))
print(requestApi.funcode)
print(requestApi.token)
print(requestApi.args.name)
print(requestApi.args.video_path)
结果:
101101
2ec45770-b897-4cd0-8ae1-e65ab065a661
liming
liming.mp4
当前分类随机文章推荐
- Python - yaml配置用法详解以及使用Pyyaml库操作yaml文件 阅读918次,点赞0次
- Python - 类对象/列表/元祖/字典判空的方法 阅读2306次,点赞0次
- Python - 在子线程中使用OpenCV异步读取摄像头视频帧传递到主线程中进行处理 阅读1295次,点赞1次
- Python - 列表list遍历方法总结 阅读527次,点赞0次
- Python3爬虫 - requests库 阅读3782次,点赞3次
- Python - glob模块详解以及glob.glob、glob.iglob函数的使用 阅读1107次,点赞0次
- Python - 使用命令行调用ffmpeg修改视频帧率,将60FPS的视频修改为30FPS的视频,视频时间保持不变 阅读470次,点赞0次
- Python - 使用with open as 读写文件 阅读1593次,点赞0次
- Python - 使用flask_sockets库构建websocket服务器 阅读3635次,点赞0次
- Python - list/numpy/pytorch tensor相互转换 阅读1719次,点赞0次
全站随机文章推荐
- 资源分享 - The HDRI Handbook 2.0- High Dynamic Range Imaging for Photographers and CG Artists高清PDF下载 阅读2480次,点赞0次
- Python - Linux/Centos/Ubuntu查看CUDA/cuDNN版本号 阅读3732次,点赞0次
- 资源分享 - Mathematics for Computer Graphics , Second Edition 英文高清PDF下载 阅读1312次,点赞0次
- C++ - 对字符串和图片进行base64编解码 阅读320次,点赞0次
- 计算机图形学 - PBR纹理中不同贴图的作用和意义 阅读1024次,点赞1次
- 资源分享 - 全局光照算法技术 第2版 , Advanced Global Illumination 2nd Edition 中文版PDF下载 阅读2041次,点赞2次
- Youtube运营 - 申请开通YPP(Youtube合作伙伴计划)时,人工审核未通过,理由为再利用他人的内容 阅读288次,点赞0次
- Centos7 - 防火墙操作以及开启和关闭特定端口 阅读4370次,点赞2次
- 深度学习 - Python实现CTC Decode解码算法Greedy Search Decode,Beam Search Decode,Prefix Beam Search Decode 阅读1511次,点赞0次
- 深度学习 - 为什么要初始化网络模型权重? 阅读474次,点赞0次
评论
169