简单谈谈Python中的json与pickle

发布时间 - 2026-01-11 02:24:22    点击率:

这是用于序列化的两个模块:

• json: 用于字符串和python数据类型间进行转换

• pickle: 用于python特有的类型和python的数据类型间进行转换

Json 模块提供了四个功能:dumps、dump、loads、load

pickle 模块提供了四个功能:dumps、dump、loads、load

import pickle
data = {'k1':123, 'k2':888}
#dumps可以将数据类型转换成只有python才认识的字符串
p_str = pickle.dumps(data)
print p_str


输出结果:

(dp0
S'k2'
p1
I888
sS'k1'
p2
I123
s.

将数据转换成只有Python认识的字符串,并写入文件:

import pickle
data = {'k1':123, 'k2':888}
#打开文件,然后将data写入
with open('data.pkl', 'wb') as f:
 pickle.dump(data, f)
#同样读取的时候也需要打开文件
with open('data.pkl', 'rb') as f:
 data_1 = pickle.load(f)
print data_1


结果:

{'k2': 888, 'k1': 123}

文件中显示的内容与上面一致

json的用法和pickle是一样的

import json
data = {'k1':123, 'k2':888}
p_str = json.dumps(data)
print p_str, type(p_str)


结果:

{"k2": 123, "k1": 888} <type 'str'>

看起来好像是个字典,但要注意了,实际上这是个字符串,因为json只能是字符串格式,只是看起来像字典而已。

import json
data = {'k1':123, 'k2':123}
 
#打开文件,然后将data写入
with open('data.pkl', 'w') as f:
 json.dump(data, f)
 
#同样读取的时候也需要打开文件
with open('data.pkl', 'r') as f:
 data_1 = json.load(f)
print(data_1, type(data_1))


结果:

({u'k2': 123, u'k1': 123}, <type 'dict'>)

能够读取出来,而且类型也是正确的。

那pickle和json有什么区别呢?

在上面两段代码中,pickle写入和读取文件时,用的是 ‘b'模式,而json没有。

json是可以在不同语言之间交换数据的,而pickle只在python之间使用。

json只能序列化最基本的数据类型,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。

以上这篇简单谈谈Python中的json与pickle就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# python  # pickle  # json  # Python序列化模块之pickle与json详解  # Python常用标准库详解(pickle序列化和JSON序列化)  # Python 对象序列化与反序列化之pickle json详细解析  # Python 解析库json及jsonpath pickle的实现  # Python标准库json模块和pickle模块使用详解  # Python之数据序列化(json、pickle、shelve)详解  # Python3.5 Json与pickle实现数据序列化与反序列化操作示例  # Python序列化基础知识(json/pickle)  # 详解Python之数据序列化(json、pickle、shelve)  # Python序列化模块JSON与Pickle  # 序列化  # 给大家  # 转换成  # 的是  # 这是  # 希望能  # 只在  # 在上面  # 特有的  # 这篇  # 这是个  # 但要  # 小编  # 有什么区别  # 大家多多  # 两段  # 是一样的  # 注意了  # load  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站图片在线制作软件,怎么在图片上做链接?  如何快速搭建虚拟主机网站?新手必看指南  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Java遍历集合的三种方式  潮流网站制作头像软件下载,适合母子的网名有哪些?  Python文件异常处理策略_健壮性说明【指导】  黑客如何利用漏洞与弱口令入侵网站服务器?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  奇安信“盘古石”团队突破 iOS 26.1 提权  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Laravel如何实现用户注册和登录?(Auth脚手架指南)  北京网站制作公司哪家好一点,北京租房网站有哪些?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  如何挑选优质建站一级代理提升网站排名?  文字头像制作网站推荐软件,醒图能自动配文字吗?  Linux系统命令中tree命令详解  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  英语简历制作免费网站推荐,如何将简历翻译成英文?  香港服务器部署网站为何提示未备案?  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  iOS验证手机号的正则表达式  北京企业网站设计制作公司,北京铁路集团官方网站?  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  如何有效防御Web建站篡改攻击?  iOS发送验证码倒计时应用  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  微信小程序 require机制详解及实例代码  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel distinct去重查询_Laravel Eloquent去重方法  如何在建站主机中优化服务器配置?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  C#如何调用原生C++ COM对象详解  如何为不同团队 ID 动态生成多个非值班状态按钮  浅谈redis在项目中的应用  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  html5的keygen标签为什么废弃_替代方案说明【解答】  西安专业网站制作公司有哪些,陕西省建行官方网站?  详解Huffman编码算法之Java实现  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  简单实现jsp分页  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  零服务器AI建站解决方案:快速部署与云端平台低成本实践  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】