📜  Python处理JSON数据(1)

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

Python 处理 JSON 数据

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript语言的一个子集,易于阅读和编写,易于机器解析和生成。在Python中,我们可以使用内置的json库来处理JSON数据。

将 Python 对象转换为 JSON 字符串

使用 json.dumps() 方法可以将 Python 对象转换为 JSON 字符串。

import json

# 定义一个Python字典
person = {
    "name": "Hank",
    "age": 25,
    "hobbies": ["reading", "coding", "swimming"]
}

# 将Python字典转换为JSON字符串
json_string = json.dumps(person)
print(json_string)

输出:

{"name": "Hank", "age": 25, "hobbies": ["reading", "coding", "swimming"]}
将 JSON 字符串转换为 Python 对象

使用 json.loads() 方法可以将 JSON 字符串转换为 Python 对象。

import json

# 定义一个JSON字符串
person_json_string = '{"name": "Hank", "age": 25, "hobbies": ["reading", "coding", "swimming"]}'

# 将JSON字符串转换为Python字典
person_dict = json.loads(person_json_string)
print(person_dict)

输出:

{'name': 'Hank', 'age': 25, 'hobbies': ['reading', 'coding', 'swimming']}
读写 JSON 文件

我们也可以将 JSON 数据存储在文件中,使用 json.dump() 方法将 Python 对象写入 JSON 文件,使用 json.load() 方法将 JSON 数据读取为 Python 对象。

import json

# 将Python字典写入JSON文件中
person = {
    "name": "Hank",
    "age": 25,
    "hobbies": ["reading", "coding", "swimming"]
}
with open('person.json', 'w') as f:
    json.dump(person, f)

# 读取JSON文件并转换为Python字典
with open('person.json', 'r') as f:
    person_dict = json.load(f)
print(person_dict)

输出:

{'name': 'Hank', 'age': 25, 'hobbies': ['reading', 'coding', 'swimming']}
处理复杂 JSON 数据

如果 JSON 数据较为复杂,包含嵌套结构或数组等,我们也可以使用 json.dumps()json.loads() 方法进行转换。

import json

# 定义一个包含嵌套结构和数组的Python对象
data = {
    "person": {
        "name": "Hank",
        "age": 25,
        "hobbies": ["reading", "coding", "swimming"]
    },
    "company": {
        "name": "ABC Company",
        "address": "123 Main St.",
        "employees": [
            {"name": "John", "age": 30},
            {"name": "Jane", "age": 25},
            {"name": "Bob", "age": 35}
        ]
    }
}

# 将Python对象转换为JSON字符串
json_string = json.dumps(data)
print(json_string)

# 将JSON字符串转换为Python对象
data_dict = json.loads(json_string)
print(data_dict)

输出:

{"person": {"name": "Hank", "age": 25, "hobbies": ["reading", "coding", "swimming"]}, "company": {"name": "ABC Company", "address": "123 Main St.", "employees": [{"name": "John", "age": 30}, {"name": "Jane", "age": 25}, {"name": "Bob", "age": 35}]}}
{'person': {'name': 'Hank', 'age': 25, 'hobbies': ['reading', 'coding', 'swimming']}, 'company': {'name': 'ABC Company', 'address': '123 Main St.', 'employees': [{'name': 'John', 'age': 30}, {'name': 'Jane', 'age': 25}, {'name': 'Bob', 'age': 35}]}}
总结

JSON 数据是一种常见的数据格式,Python 内置的 json 库提供了一些方法来方便地处理 JSON 数据。在转换 JSON 数据时,需要注意保持数据结构的一致性,这也是使用 JSON 数据的一个重要方面。