Python simplejson 教程展示了如何使用 Python simplejson 模块读取和写入 JSON 数据。
JSON 格式
JSON(JavaScript 对象表示法)是一种轻量级的数据交换格式。 它很容易被人读写,也可以由机器解析和生成。 application/json
是 JSON 的官方 Internet 媒体类型。 JSON 文件扩展名是.json
。
simplejson 模块
simplejson 是适用于 Python 2.5+和 Python 3.3+的简单,快速,完整且可扩展的 JSON 编码器和解码器。 它是没有依赖性的纯 Python 代码。
simplejson
模块包含在现代 Python 版本中。 解码器可以处理任何指定编码的传入 JSON 字符串(默认为 UTF-8)
使用 simplejson
要使用simplejson
模块,我们导入json
。
Simplejson 转换表
下表显示了如何在 Python 和 JSON 之间转换数据类型。
Python | JSON 格式 |
---|---|
字典,命名元组 | 对象 |
列表,元组 | 数组 |
str ,unicode |
字符串 |
int ,long ,float |
数字 |
True |
true |
False |
false |
None |
null |
json.dump()
json.dump()
方法将 Python 对象作为 JSON 格式的流序列化到文件对象。
simplejson_dump.py
该示例使用json.dump()
方法将 Python 字典序列化为 JSON。 JSON 数据被写入friends.json
文件。
执行脚本后,我们得到了这些数据。
json.dumps()
json.dumps()
方法将 Python 对象序列化为 JSON 字符串。
simplejson_dumps.py
该示例使用json.dumps()
方法将 Python 列表序列化为 JSON 字符串。 JSON 数据被打印到控制台。
这是示例的输出。
json.load()
json.load()
方法将包含 JSON 文档的文件对象反序列化为 Python 对象。
config.json
config.json
文件包含此数据。
read_config.py
该示例使用json.load()
从config.json
文件读取配置数据,并将数据打印到终端。
这是输出。
json.loads()
json.loads()
方法将 JSON 字符串反序列化为 Python 对象。
simplejson_loads.py
该示例将 JSON 字符串反序列化为 Python 字典。
这是示例的输出。
Simplejson 从 URL 读取 JSON
以下示例从网页读取 JSON 数据。 我们从http://time.jsontest.com
获得 JSON 数据。
对此站点的 GET 请求返回此 JSON 字符串。
parse_json_url.py
在该示例中,我们使用urllib.request
模块创建对网站的请求。
从返回的响应中,我们使用json.loads()
方法将 JSON 字符串转换为 Python 字典。
借助 Python 的format()
方法,我们将检索到的数据打印到控制台。
这是输出。
漂亮地打印
使用 simplejson,我们可以轻松漂亮地打印数据。
pretty_print_json.py
使用sort_keys
和indent
选项,我们可以很好地格式化 JSON 数据。
这是示例的输出。 数据缩进并对键进行排序。
Simplejson 自定义类
Simplejson 仅序列化和反序列化一些 Python 对象,这些对象在转换表中列出。 对于自定义 Python 对象,我们需要执行一些附加步骤。
custom_class.py
在此示例中,我们将自定义对象序列化为 JSON。
诀窍是使用__dict__
属性,该属性存储对象属性(名称和年龄)。
这是输出。
自定义类的 Simplejson 列表
在下一个示例中,我们显示如何序列化自定义类的列表。
custom_class_list.py
我们创建了一个toJson()
方法来序列化该对象。
将对象添加到列表时,我们将调用toJson()
方法。
这是示例的输出。
在本教程中,我们使用了 Python simplejson 库。
您可能也会对以下相关教程感兴趣: Python 教程,Python CSV 教程,Python 列表推导, Pyquery 教程, Openpyxl 教程。