Python标准库json模块和pickle模块使用详解
将Python数据类型转换为其他代码格式叫做(序列化),而json就是在各个代码实现转换的中间件。
序列化要求:
1. 只能有int,str,bool,list,dict,tuple的类型支持序列化。
2. json序列化是以字符串形式出现。那么:lis= "[11,22,33]" 这样的也能称为序列化。
3. 必须将数据类型包裹在list或dict内进行转换。
4. json内部的str格式,必须以双引号来进行包裹。
5. bool值转换为小写的首字母
json.dumps
将py转换为json(序列化)格式的字符串
lis = [11,22,33] json_lis = json.dumps(lis) print(type(json_lis)) #<class 'str'>
如果序列化时,存在中文,那么默认将会以unnicode类型转换。可以使用:
v = [1,2,3,4,'哈哈'] data= json.dumps(v) print(data) #[1, 2, 3, 4, "\u54c8\u54c8"] ################################# v = [1,2,3,4,'哈哈'] data= json.dumps(v,ensure_ascii=False) print(data) #[1, 2, 3, 4, "哈哈"]
将序列化格式字符串,反序列化为python文件格式。
lis = [11,22,33] json_lis = json.dumps(lis) lis_1 = json.loads(json_lis) print(type(lis_1))
将序列化好的内容直接存放到一个文件内。load为直接读取文件内序列化的内容进行反序列化。
import json v = [1,2,3,4,'哈哈'] with open('test.txt',mode='w',encoding='utf-8') as f: json.dump(v,f,ensure_ascii=False)
pickle模块:
pickle的使用方式和json完全一样,需要注意的是:
1. pickle只支持python类型的转换,而json支持其他代码语言的转换。
2. pickle可以将python中所有数据类型进行转换,而json不能转换元组(转换成列表)和集合,而且必须套到列表或字典中。
3. json序列化后的类型为字符串类型,而pickle所序列化的类型为bytes类型。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python标准库OS模块函数列表与实例全解
Python OS模块库详解 os就是"operating system"的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口.通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性.如果该模块中相关功能出错,会抛出OSError异常或其子类异常. 注意 如果是读写文件的话,建议使用内置函数open(): 如果是路径相关的操作,建议使用os的子模块os.path: 如果要逐行读取多个文件,建议使用fileinput模块
-
python语言线程标准库threading.local解读总结
本段源码可以学习的地方: 1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建: 2. 可以重写一些魔术方法,比如 __new__ 方法,在调用 object.__new__(cls) 前后进行属性的一些小设置: 3. 在本库中使用的重写魔术方法,上下文这两种基础之上,我们可以想到函数装饰器,类装饰器,异常捕获,以及两种上下文的结构: 灵活运用这些手法,可以让我们在代码架构上更上一层,能够更加省时省力. from weakref import ref # ref用在了构造大字典
-
Python3标准库之functools管理函数的工具详解
1. functools管理函数的工具 functools模块提供了一些工具来调整或扩展函数和其他callable对象,从而不必完全重写. 1.1 修饰符 functools模块提供的主要工具就是partial类,可以用来"包装"一个有默认参数的callable对象.得到的对象本身就是callable,可以把它看作是原来的函数.它与原函数的参数完全相同,调用时还可以提供额外的位置或命名函数.可以使用partial而不是lambda为函数提供默认参数,有些参数可以不指定. 1.1.1 部
-
python标准库OS模块详解
python标准库OS模块简介 os就是"operating system"的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口.通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性.如果该模块中相关功能出错,会抛出OSError异常或其子类异常. 注意 如果是读写文件的话,建议使用内置函数open(): 如果是路径相关的操作,建议使用os的子模块os.path: 如果要逐行读取多个文件,建议使用fileinput模
-
python标准库os库的函数介绍
OS库提供通用的,基本的操作系统交互功能. -OS库是Python标准库,包含几百个函数 -常用路径操作,进程管理,环境参数等几类 -路径操作: os.path子库,处理文件路径及信息 -进程管理:启动系统中其他程序 -环境参数:获得系统软硬件信息等环境参数 os.path子库以path为入口,用于操作和处理文件路径 import os.path import os.path as op os.path.abspath(path) #返回path在当前系统中的绝对路径 os.path.normp
-
python标准库sys和OS的函数使用方法与实例详解
python标准库sys sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互,如:python解释器. sys模块的常见函数列表(import sys): 函数 说明 dir(sys) dir()方法查看模块中可用的方法.注意:如果是在编辑器,一定要注意要事先声明代码的编码方式,否则中文会乱码. sys.argv 实现从程序外部向程序传递参数 sys.exit([arg]) 程序中间的退出,arg=0为正常退出
-
用python标准库difflib比较两份文件的异同详解
[需求背景] 有时候我们要对比两份配置文件是不是一样,或者比较两个文本是否异样,可以使用linux命令行工具diff a_file b_file,但是输出的结果读起来不是很友好.这时候使用python的标准库difflib就能满足我们的需求. 下面这个脚本使用了difflib和argparse,argparse用于解析我们给此脚本传入的两个参数(即两份待比较的文件),由difflib执行比较,比较的结果放到了一个html里面,只要找个浏览器打开此html文件,就能直观地看到比较结果,两份文件有差
-
Python标准库之zipfile和tarfile模块的使用
目录 zip格式 ZipFile参数说明 操作含义 压缩方法 常用方法 tar包 和 gz.bz2.xz格式 操作tar包 压缩 解压缩 删除压缩包中的文件 在我们常用的系统windows和Linux系统中有很多支持的压缩包格式,包括但不限于以下种类:rar.zip.tar,以下的标准库的作用就是用于压缩解压缩其中一些格式的压缩包. zip格式 import zipfile zipfile模块操作压缩包使用ZipFile类进行操作,使用方法和open的使用方法很相似,也是使用r.w.x.a四种操
-
Python 解析库json及jsonpath pickle的实现
1. 数据抽取的概念 2. 数据的分类 3. JSON数据概述及解析 3.1 JSON数据格式 3.2 解析库json json模块是Python内置标准库,主要可以完成两个功能:序列化和反序列化.JSON对象和Python对象映射图如下: 3.2.1 json序列化 对象(字典/列表) 通过 json.dump()/json.dumps() ==> json字符串.示例代码如下: import json class Phone(object): def __init__(self, name,
-
python 第三方库的安装及pip的使用详解
python是一款简单易用的编程语言,特别是其第三方库,能够方便我们快速进入工作,但其第三方库的安装困扰很多人. 现在安装python时,已经能自动安装pip了 安装成功后,我们可以在Scripts 文件夹下看到pip 使用pip 安装类库也比较简单 pip install ... 即可 以上这篇python 第三方库的安装及pip的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
Python标准库json模块和pickle模块使用详解
将Python数据类型转换为其他代码格式叫做(序列化),而json就是在各个代码实现转换的中间件. 序列化要求: 1. 只能有int,str,bool,list,dict,tuple的类型支持序列化. 2. json序列化是以字符串形式出现.那么:lis= "[11,22,33]" 这样的也能称为序列化. 3. 必须将数据类型包裹在list或dict内进行转换. 4. json内部的str格式,必须以双引号来进行包裹. 5. bool值转换为小写的首字母 json.dumps 将py转
-
Python对象与json数据的转换问题实例详解
目录 JSON 函数 使用 JSON 函数需要导入 json 库:import json. json.dumps 语法 实例 实例 实例 json.loads 语法 实例 实例 使用第三方库:Demjson 环境配置 JSON 函数 encode 语法 实例 实例 decode 语法 实例 实例 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写. JSON 函数 使用 JSON 函数需要导入 json 库:import json. 函
-
Python数据分析库pandas高级接口dt的使用详解
Series对象和DataFrame的列数据提供了cat.dt.str三种属性接口(accessors),分别对应分类数据.日期时间数据和字符串数据,通过这几个接口可以快速实现特定的功能,非常快捷. 今天翻阅pandas官方文档总结了以下几个常用的api. 1.dt.date 和 dt.normalize(),他们都返回一个日期的 日期部分,即只包含年月日.但不同的是date返回的Series是object类型的,normalize()返回的Series是datetime64类型的. 这里先简单
-
如何使用Python标准库进行性能测试
Profile 和 cProfile 在 Python 标准库里面有两个模块可以用来做性能测试. 1. 一个是 Profile,它是一个纯 Python 的实现,所以会慢一些,如果你需要对模块进行拓展,那么这个模块比较合适. 2. 第二个是 cProfile,从名字就可以看出这是一个 C 语言的实现版,官方推荐在大多数情况下使用. 这两者的接口和数据的输出格式是完全一样的,你可以在这两者之间自由的切换,所以下面我们仅以 cProfile 为例进行介绍. 使用 cProfile 进行性能测试 在
-
python模块shutil函数应用示例详解教程
目录 本文大纲 知识串讲 1)模块导入 2)复制文件 3)复制文件夹 4)移动文件或文件夹 5)删除文件夹(慎用) 6)创建和解压压缩包 本文大纲 os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作.而Python另外一个标准库--shutil库,它作为os模块的补充,提供了复制.移动.删除.压缩.解压等操作,这些 os 模块中一般是没有提供的.但是需要注意的是:shutil 模块对压缩包的处理是调用 ZipFile 和 TarFile这两个模块来进行的. 知识串
随机推荐
- AngularJS动态菜单操作指令
- 利用Spring Session和redis对Session进行共享详解
- 用Javascript评估用户输入密码的强度实现代码
- JavaScript 对象详细整理总结
- C#使用正则表达式过滤html标签
- MySQL关闭过程详解和安全关闭MySQL的方法
- Mysql如何使用命令实现分级查找帮助详解
- jQuery插件FusionCharts实现的MSBar3D图效果示例【附demo源码】
- java随机生成一个名字和对应拼音的方法
- 运维的85条规则
- 制作PHP的RPM包详解及实例
- Nginx使用的php-fpm的两种进程管理方式及优化
- 探讨PHP调用时间格式的参数详解
- 自制路由器,共享上宽带
- Java实现的文件上传下载工具类完整实例【上传文件自动命名】
- React Native之prop-types进行属性确认详解
- Node.js静态服务器的实现方法
- Android如何创建可拖动的图片控件
- PHP面向对象程序设计__tostring()和__invoke()用法分析
- 如何通过python的fabric包完成代码上传部署