Python 的 json 模组是一个内建的库,用于处理 JSON(JavaScript Object Notation)数据格式。JSON 是一种轻量级的资料交换格式,易于人类阅读和撰写,也易于机器解析和生成。以下是对 json 模组的详细介绍,包括其功能、常用函数和示例。

什么是 JSON?

JSON 格式: JSON 是一种基于文本的资料格式,通常用于网路应用程式之间的资料传递。它使用键值对(key-value pairs)的方式来表示资料,结构类似于 Python 的字典。

资料类型: JSON 支持多种资料类型,包括:

  • 字串(String)
  • 数字(Number)
  • 布林值(Boolean)
  • 阵列(Array)
  • 物件(Object)
  • 空值(null)

Python 的 json 模组功能

Python 的 json 模组提供了多个函数,用于在 Python 对象和 JSON 数据之间进行转换和序列化。

常用函数

函数名称
描述
参数
返回值
json.dumps(obj) 将 Python 对象转换为 JSON 字串。 obj: 要转换的 Python 资料结构。可选参数如 indent 用于格式化输出。 JSON 字串
json.loads(json_string) 将 JSON 字串‘转换’解析为 Python 对象。 json_string: 要解析的 JSON 字串。 Python 对象
json.dump(obj, file) 将 Python 对象‘写入’到文件中,以 ‘JSON 格式储存’。 obj: 要写入的 Python 资料结构。file: 开启的文件对象。
json.load(file) 从文件中‘读取’ JSON 数据并解析为 Python 对象。 file: 开启的文件对象。 Python 对象

1.json.dumps(obj):将 Python 对象转换为 JSON 字串。- 参数:- obj: 要转换的 Python 资料结构。- 可选参数如 indent 用于格式化输出。范例:

import json
data = {"name": "John", "age": 30}
json_string = json.dumps(data)
print(json_string) # 输出: {"name": "John", "age": 30}

2.json.loads(json_string):将 JSON 字串解析为 Python 对象。参数:json_string: 要解析的 JSON 字串。

import json
json_string = \'{"name": "John", "age": 30}\'
data = json.loads(json_string)
print(data) # 输出: {\'name\': \'John\', \'age\': 30}

3.json.dump(obj, file):将 Python 对象写入到文件中,以 JSON 格式储存。参数:obj: 要写入的 Python 资料结构。file: 开启的文件对象。

import json
data = {"name": "John", "age": 30}
with open(\'data.json\', \'w\') as f:
json.dump(data, f)

4.json.load(file):从文件中读取 JSON 数据并解析为 Python 对象。参数:file: 开启的文件对象。

import json
with open(\'data.json\', \'r\') as f:
data = json.load(f)
print(data) # 输出: {\'name\': \'John\', \'age\': 30}

小结

使用 json.loads() 当你有一个 JSON 文件字串需要‘转换’解析时。使用 json.load() 当你需要从一个JSON 文件中读取数据时。使用 json.dump() 当你想把 Python 里面资料(比如字典)写入到一个json文件中,并储存。使用 json.dumps() Python 里面的资料变成 JSON 字串,但不需要写入文件

序列化与反序列化:当你将 Python 字典转换为 JSON 字串时,这个过程称为序列化(Serialization)。这使得 Python 对象能够以一种标準格式进行储存或传输。反之,将 JSON 字串转换回 Python 对象的过程称为反序列化(Deserialization)。