在 Python 中使用 JSON 数据
JSON(JavaScript 对象表示法)是一种轻量级数据格式,用于服务器和客户端之间的数据交换。它通常用于 Web 应用程序中发送和接收数据。Python 提供了一个名为 json
的内置模块,可轻松处理 JSON 数据。本文将指导您了解在 Python 中使用 JSON 数据的基础知识,包括读取、写入和操作 JSON 对象。
什么是 JSON?
JSON 是一种基于文本的格式,无论是人类还是机器都易于读写。它由键值对组成,类似于 Python 字典。典型的 JSON 对象如下所示:
{
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": false,
"skills": ["Python", "JavaScript", "SQL"]
}
导入 JSON 模块
json
模块包含在 Python 的标准库中,因此您无需安装任何东西。只需在脚本开头导入它即可:
import json
读取 JSON 数据
您可以从字符串或文件中读取 JSON 数据。json.loads()
方法用于从字符串解析 JSON 数据,而 json.load()
用于从文件读取 JSON 数据。
从字符串读取 JSON
要从字符串读取 JSON,请使用 json.loads()
方法,它将 JSON 字符串转换为 Python 字典。
# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data['name']) # Output: Alice
从文件读取 JSON
要从文件读取 JSON 数据,请使用 json.load()
方法。此方法读取文件的内容并将其转换为 Python 字典。
# Example of reading JSON from a file
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
写入 JSON 数据
您可以将 JSON 数据写入字符串或文件。json.dumps()
方法用于将 Python 对象转换为 JSON 字符串,而 json.dump()
用于将 JSON 数据写入文件。
将 JSON 写入字符串
要将 JSON 写入字符串,请使用 json.dumps()
方法,它将 Python 字典转换为 JSON 字符串。
# Example of writing JSON to a string
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
json_string = json.dumps(data)
print(json_string)
将 JSON 写入文件
要将 JSON 数据写入文件,请使用 json.dump()
方法。此方法接受 Python 对象并将其以 JSON 格式写入文件。
# Example of writing JSON to a file
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
with open('output.json', 'w') as file:
json.dump(data, file)
漂亮地打印 JSON 数据
json.dumps()
方法有多个参数,可用于格式化 JSON 数据以提高可读性。indent
参数指定用于缩进的空格数,而 sort_keys
参数对输出中的键进行排序。
# Example of pretty-printing JSON data
data = {
"name": "Charlie",
"age": 35,
"city": "Chicago"
}
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)
JSON 和 Python 数据类型之间的转换
Python 的 json
模块可以处理不同的数据类型并在 JSON 和 Python 之间进行转换。以下是快速参考:
dict
(Python) 到object
(JSON)list
(Python) 到array
(JSON)str
(Python) 到string
(JSON)int
、float
(Python) 到number
(JSON)True
、False
(Python) 至true
、false
(JSON)None
(Python) 到null
(JSON)
处理 JSON 错误
使用 JSON 时,可能会由于格式不正确或数据异常而出现错误。json
模块在遇到此类问题时会引发 JSONDecodeError
等异常。使用 try
和 except
块可妥善处理这些错误。
# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"' # Missing closing brace
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
结论
处理 JSON 数据是 Python 开发人员的一项基本技能,尤其是在 Web 开发和数据科学领域。json
模块提供了易于使用的方法来读取、写入和操作 JSON 数据。通过掌握这些技术,您可以在 Python 应用程序中高效地处理 JSON 数据。