📜  Python - json.load() 和 json.loads() 的区别(1)

📅  最后修改于: 2023-12-03 15:18:51.798000             🧑  作者: Mango

Python - json.load() 和 json.loads() 的区别

JSON 是一种用于数据传送的格式,它的格式简单且易于阅读,非常适合数据交互。而在 Python 中,我们可以使用 json 库来处理 JSON 数据。在 json 库中,有两个常用的方法 json.load()json.loads(),它们都可以将 JSON 数据转换为 Python 数据类型。那么这两个方法有什么区别呢?下面就来介绍一下。

json.load()

json.load() 方法从文件中读取 JSON 数据并将其解析为 Python 对象。需要注意的是,它只能读取文件对象,且该文件对象必须以读取的方式打开,并且一次只能读取一个 JSON 对象。

下面是一个例子:我们有一个文件 example.json,它的内容为:

{
    "name": "Alice",
    "age": 25,
    "isMarried": true,
    "hobbies": ["reading", "traveling", "swimming"]
}

我们使用 json.load() 将其转换为 Python 对象:

import json

with open('example.json', 'r') as f:
    data = json.load(f)
    print(data)

输出结果为:

{'name': 'Alice', 'age': 25, 'isMarried': True, 'hobbies': ['reading', 'traveling', 'swimming']}
json.loads()

json.loads() 方法将一个 JSON 字符串解析为 Python 对象。与 json.load() 不同的是,它需要一个字符串作为参数,而不是文件对象。

下面是一个例子:我们有一个 JSON 字符串 example_str,它的内容为:

{
    "name": "Alice",
    "age": 25,
    "isMarried": true,
    "hobbies": ["reading", "traveling", "swimming"]
}

我们使用 json.loads() 将其转换为 Python 对象:

import json

example_str = '{"name": "Alice", "age": 25, "isMarried": true, "hobbies": ["reading", "traveling", "swimming"]}'
data = json.loads(example_str)
print(data)

输出结果为:

{'name': 'Alice', 'age': 25, 'isMarried': True, 'hobbies': ['reading', 'traveling', 'swimming']}
总结

json.load()json.loads() 都可以将 JSON 数据解析为 Python 对象,但是它们的使用方式不同。json.load() 适用于读取文件中的 JSON 数据,而 json.loads() 适用于解析 JSON 字符串。需要注意的是,JSON 数据必须符合 JSON 规范,否则在解析时可能会抛出异常。

以上就是 json.load()json.loads() 的区别,希望能对大家有所帮助。