Python数据持久化:JSON
2026/8/22 18:15:00 网站建设 项目流程

上周进行更新的《Think 2e》, 其第14章讲述了几种数据持久化的方式, 像dbm诸如此类, 然而鉴于篇幅与读者等方面的因素, 并未把各种方式都完整列出。

本文会介绍一种跟类似的轻量级数据持久化方式, 那就是json, 并且哩, json格式还是网络数据传输当中一种常见的格式, 很颇具了解与学习的必要性哟。

JSON与的区别

官方文档中是这么比较JSON与的:

JSON是文本形式的存储,则是二进制形式(至少常用二进制)

JSON是人可读的,不可读

JSON广泛应用于除外的其他领域,是独有的

JSON只能dump一些的内置对象,可以存储几乎所有对象

JSON一般使用方式

用以处理json的自带库是json模块, 需要运用到的方法大概是以下4个, 实际上它们的参数有许多, 这里在这里暂先省略。

能够瞧见, 结尾带着s意味着于字符串层面开展操作, 要是不带s那便是在文件层级予以操作。obj所指的是需要进行转化的对象, 它能够是一个字典或者是一个列表, fp是文件句柄, 借助open将其打开。s是一个字符串。

运行dumps之后, 返回的是一个字符串, 而load以及loads, 返回的是对象。

以下那些属于最为简单的一部分运用方式, 在此处另外存在一些具备实用性的参数可供选取。

在存在含中文的情形下, 参数设置为False能够避免将其解码, 如此便可杜绝出现乱码, 在loads时能够通过指定的方式, 来维持那种编码形式, 从而实现保持编码目的。

中文编码方面的问题, 可去参考之前所发的文章, 那篇文章的标题是《如何正确解决当中的中文编码问题》。

要是参数不被指定, 那输出的字符串便是紧凑的样式, 将其指定为4, 就能输出缩进为4的美化样式, 在有必要给人看的时候用上这个挺好。

JSON序列化问题

自身的json.dumps没办法对对象进行序列化, 要是有dump这类对象的需求, 能够自行去定义。

这样子, 进行dump时, 指定cls参数, 便能够达成序列化的任务, 要是感觉麻烦的话, 能够运用偏函数的方式, 自行封装一番。

中原内里所带有的json之类的库, 是在2.6这个版本才被并入进去的。所以呢, 要是你有需求去运用一个更为早些的版本, 而且还要处理json方面的数据, 这样子的情况下, 你能够安装一个第三方类型的库:

将自带的json库进行了模拟, 当下支持2.5以上以及3.3以上。依据官方文档所给出的介绍, 在没有安装C扩展这个条件之下, 此库的速度依旧比自带的json库出色。这大概也是其在PyPI的下载数极高的缘由之一。

要使用,你只需要像下面这样导入即可:

as json

其他的代码不需要修改。

本文参考了

一文。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询