📅  最后修改于: 2023-12-03 15:34:19.972000             🧑  作者: Mango
本文将介绍如何使用 Python 检查一个字符串是否为有效的 JSON 格式。我们将会讲到如何利用 Python 内置函数、第三方库来完成这一任务。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,并易于机器解析和生成。JSON 是基于 JavaScript 的一个子集,但 JSON 是独立于编程语言的。[^1]
JSON 由两种结构组成:
Python 内置模块 json 提供了处理 JSON 数据的功能。json.loads() 函数可以将 JSON 数据转化为 Python 字典。如果转化失败,则说明该字符串不是有效的 JSON。
以下是使用 json 模块进行 JSON 检查的示例代码:
import json
def is_valid_json(json_str):
try:
json.loads(json_str)
return True
except ValueError:
return False
print(is_valid_json('{"name": "John", "age": 30, "city": "New York"}')) # True
print(is_valid_json('{"name": "John", "age": 30, "city": "New York", }')) # False
jsonschema 是一个 Python 第三方库,它提供了更完整、更具体的 JSON 校验。 jsonschema 检查 JSON 数据时,不仅可以检查数据的格式是否正确,还可以检查数据的类型、长度等方面的完整性。以下是一个使用 jsonschema 校验 JSON 数据的示例:
from jsonschema import validate
json_schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "number"},
"city": {"type": "string"}
},
"required": ["name", "age", "city"]
}
def is_valid_json(json_str):
try:
validate(instance=json_str, schema=json_schema)
return True
except Exception:
return False
print(is_valid_json('{"name": "John", "age": 30, "city": "New York"}')) # True
print(is_valid_json('{"name": "John", "age": 30}')) # False, 缺少 city
本文介绍了两种方法检查 Python 中的字符串是否为有效的 JSON 数据。其中,第一种方法使用了 Python 内置模块 json,较为简单;第二种方法使用了第三方库 jsonschema,功能更为完善。无论哪种方法,您都能够使用它们进行 JSON 数据的校验。