在 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 数据。