【文件解析】json.load(fp)
json.load(fp)
json.load()
是 Python 中 json
模块的一个函数,用于将 JSON 格式的文件内容解析为 Python 对象。
语法
json.load(fp)
参数
fp
:文件对象,必须是一个支持.read()
方法的文件对象,通常由open()
函数以文本模式("r"
)或二进制模式("rb"
)打开。文件中应包含有效的 JSON 数据。
返回值
返回从 JSON 数据解析得到的 Python 对象。JSON 数据类型与 Python 数据类型的对应关系如下:
JSON 数据类型 | Python 数据类型 |
---|---|
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
示例代码
import json# 打开并读取 JSON 文件
with open("data.json", "r") as f:data = json.load(f)print(data)
print(type(data))
假设 data.json
文件内容如下:
{"name": "John","age": 30,"is_student": false,"hobbies": ["reading", "traveling", "gaming"],"scores": {"math": 95,"english": 85}
}
执行上述代码后,data
的值将为:
{'name': 'John','age': 30,'is_student': False,'hobbies': ['reading', 'traveling', 'gaming'],'scores': {'math': 95, 'english': 85}
}
type(data)
的结果是 <class 'dict'>
。
常见用法
- 读取配置文件 :如果配置是以 JSON 格式存储的,可以使用
json.load()
将其读取为 Python 字典,方便程序获取配置信息。 - 处理 API 响应 :许多 API 会以 JSON 格式返回数据,可以将 API 响应内容保存到文件中,再用
json.load()
读取并解析。 - 数据交换 :在不同系统或组件之间传递数据时,JSON 是一种通用的数据交换格式,
json.load()
可以将接收到的 JSON 数据转换为 Python 可操作的对象。
注意事项
- 文件有效性 :确保打开的文件存在且包含有效的 JSON 数据。如果文件中的 JSON 数据格式不正确,
json.load()
会抛出json.JSONDecodeError
异常,程序会中断执行。 - 文件编码 :通常 JSON 文件使用 UTF-8 编码。在打开文件时,可以指定编码(如
open("data.json", "r", encoding="utf-8")
),以避免因编码问题导致的读取错误。 - 文件大小 :对于非常大的 JSON 文件,
json.load()
会一次性将整个文件内容加载到内存中。如果文件过大,可能会导致内存不足。这种情况下,可以考虑使用ijson
等支持流式解析的库来处理大文件。