- Python数据持久化教程
- Python 数据持久化 - 主页
- Python 数据持久化 - 简介
- Python 数据持久化 - 文件 API
- 使用 os 模块进行文件处理
- Python数据持久化——对象序列化
- Python 数据持久化 - Pickle 模块
- Python 数据持久化 - Marshal 模块
- Python数据持久化——Shelve模块
- Python数据持久化——dbm包
- Python 数据持久化 - CSV 模块
- Python 数据持久化 - JSON 模块
- Python 数据持久性 - XML 解析器
- Python 数据持久化 - Plistlib 模块
- Python数据持久化-Sqlite3模块
- Python 数据持久化 - SQLAlchemy
- Python 数据持久化 - PyMongo 模块
- Python 数据持久化 - Cassandra 驱动程序
- 数据持久化-ZODB
- 数据持久化 - Openpyxl 模块
- Python 数据持久性资源
- Python 数据持久化 - 快速指南
- Python 数据持久性 - 有用资源
- Python 数据持久化 - 讨论
Python 数据持久化 - JSON 模块
JSON 代表JavaScript 对象表示法。它是一种轻量级数据交换格式。它是一种独立于语言和跨平台的文本格式,受到许多编程语言的支持。此格式用于 Web 服务器和客户端之间的数据交换。
JSON 格式类似于 pickle。然而,pickle 序列化是 Python 特有的,而 JSON 格式是由许多语言实现的,因此已成为通用标准。Python 标准库中 json 模块的功能和接口类似于 pickle 和 marshal 模块。
就像pickle模块一样,json模块也提供了dumps()和loads()函数,用于将Python对象序列化为JSON编码字符串,并且dump()和load()函数将序列化的Python对象写入文件或从文件读取。
dumps() - 此函数将对象转换为 JSON 格式。
load() - 该函数将 JSON 字符串转换回 Python 对象。
以下示例演示了这些函数的基本用法 -
import json data=['Rakesh',{'marks':(50,60,70)}] s=json.dumps(data) json.loads(s)
dumps() 函数可以采用可选的 sort_keys 参数。默认情况下,它是 False。如果设置为 True,字典键将按排序顺序显示在 JSON 字符串中。
dumps() 函数还有另一个名为 indent 的可选参数,它接受一个数字作为值。它决定 json 字符串格式化表示的每段长度,类似于打印输出。
json模块也有与上述功能相对应的面向对象的API。模块中定义了两个类 - JSONEncoder 和 JSONDecoder。
JSONEncoder 类
该类的对象是Python数据结构的编码器。每个 Python 数据类型都会转换为相应的 JSON 类型,如下表所示 -
Python | JSON |
---|---|
词典 | 目的 |
列表、元组 | 大批 |
斯特 | 细绳 |
int、float、int 和 float 派生的枚举 | 数字 |
真的 | 真的 |
错误的 | 错误的 |
没有任何 | 无效的 |
JSONEncoder 类由 JSONEncoder() 构造函数实例化。编码器类中定义了以下重要方法 -
先生。 | 方法与说明 |
---|---|
1 |
编码() 将Python对象序列化为JSON格式 |
2 |
迭代编码() 对对象进行编码并返回一个迭代器,生成对象中每个项目的编码形式。 |
3 |
缩进 确定编码字符串的缩进级别 |
4 |
排序键 为 true 或 false 以使键按排序顺序显示或不按排序顺序显示。 |
5 |
检查循环 如果为 True,则检查容器类型对象中的循环引用 |
以下示例对 Python 列表对象进行编码。
e=json.JSONEncoder() e.encode(data)
JSONDecoder 类
此类的对象有助于将 json 字符串解码回 Python 数据结构。该类的主要方法是decode()。以下示例代码从前面步骤中的编码字符串中检索 Python 列表对象。
d=json.JSONDecoder() d.decode(s)
json 模块定义了load()和dump()函数,用于将 JSON 数据写入类似文件的对象(可以是磁盘文件或字节流),并从中读取数据。
倾倒()
此函数将 JSON 格式的 Python 对象数据写入文件。该文件必须以“w”模式打开。
import json data=['Rakesh', {'marks': (50, 60, 70)}] fp=open('json.txt','w') json.dump(data,fp) fp.close()
此代码将在当前目录中创建“json.txt”。它显示的内容如下 -
["Rakesh", {"marks": [50, 60, 70]}]
加载()
此函数从文件加载 JSON 数据并从中返回 Python 对象。该文件必须以读取权限打开(应具有“r”模式)。
例子
fp=open('json.txt','r') ret=json.load(fp) print (ret) fp.close()
输出
['Rakesh', {'marks': [50, 60, 70]}]
json.tool模块还有一个命令行界面,可以验证文件中的数据并以漂亮的格式打印 JSON 对象。
C:\python37>python -m json.tool json.txt [ "Rakesh", { "marks": [ 50, 60, 70 ] } ]