📜  JSON 与Python(1)

📅  最后修改于: 2023-12-03 14:43:34.368000             🧑  作者: Mango

JSON 与 Python

简介

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据的传输。它使用文本来表示数据对象,易于阅读和编写,同时也容易解析和生成。

Python 是一种解释型、交互式、面向对象的高级程序设计语言,常用于数据分析、人工智能、Web开发等领域。Python 作为一种强大的语言,对 JSON 的支持也非常好。

在 Python 中,我们可以使用内置的 json 模块来解析和生成 JSON 格式的数据,同时也可以将 JSON 字符串转换为 Python 对象,以便于操作和处理。

解析 JSON

我们可以使用 json 模块中的 loads() 函数来解析 JSON 字符串。该函数接收一个 JSON 字符串,并将其转换成 Python 对象。

import json

# 定义 JSON 字符串
json_str = '{"name": "John Smith", "age": 26, "gender": "male", "hobbies": ["reading", "music", "sports"]}'

# 解析 JSON 字符串
data = json.loads(json_str)

# 打印 Python 对象
print(data)

输出:

{'name': 'John Smith', 'age': 26, 'gender': 'male', 'hobbies': ['reading', 'music', 'sports']}
生成 JSON

我们也可以使用 json 模块中的 dumps() 函数来生成 JSON 格式的数据。该函数接收一个 Python 对象(通常为字典或列表),并将其转换成 JSON 字符串。

import json

# 定义 Python 对象
data = {
    "name": "John Smith",
    "age": 26,
    "gender": "male",
    "hobbies": ["reading", "music", "sports"]
}

# 生成 JSON 字符串
json_str = json.dumps(data)

# 打印 JSON 字符串
print(json_str)

输出:

{"name": "John Smith", "age": 26, "gender": "male", "hobbies": ["reading", "music", "sports"]}
处理 JSON

在 Python 中,我们可以通过 dot notation 或者 bracket notation 的方式来访问 JSON 对象的属性值。

import json

# 定义 JSON 字符串
json_str = '{"name": "John Smith", "age": 26, "gender": "male", "hobbies": ["reading", "music", "sports"]}'

# 解析 JSON 字符串
data = json.loads(json_str)

# dot notation
print(data.name)           # 抛出 AttributeError 异常,因为 JSON 对象没有 name 属性
print(data.age)            # 输出 26
print(data.hobbies[0])     # 输出 reading

# bracket notation
print(data['name'])        # 输出 John Smith
print(data['age'])         # 输出 26
print(data['hobbies'][0])  # 输出 reading

需要注意的是,使用 dot notation 访问 JSON 对象属性值时,该属性名必须符合 Python 变量名规范,否则会抛出 AttributeError 异常。

小结

Python 内置的 json 模块非常方便用来解析、生成和处理 JSON 格式的数据。通过使用 json 模块,我们可以在 Python 中轻松地完成 JSON 数据的操作,从而实现前后端之间的数据传输。