问题分析
该程序的核心目标是验证输入的JSON数据结构是否符合预定的格式要求。输入为JSON对象,输出需包含字段存在性、数据类型和字符串格式验证的详细信息。该验证过程采用Python内置的json库,能够高效处理JSON数据格式的检查。
实现方式
代码实现
import json
def validate_json_structure(data):
# 检查输入数据类型是否为字典
if not isinstance(data, dict):
raise ValueError("Input must be a JSON object")
# 验证每个字段是否存在
for key, value in data.items():
if not isinstance(value, (int, float, str, dict)):
raise ValueError(f"Field {key} must be a {type(value).__name__}")
# 检查字符串字段格式是否正确
for key, value in data.items():
if isinstance(value, str):
if "'" in value: # 检查是否包含引号
raise ValueError(f"String field {key} must not contain quotes")
else:
print(f"String field {key} format is correct")
print("验证结果:")
print("- 数据类型符合预期(整数、字符串、对象)")
print("- 字符串字段格式正确(未使用引号)")
示例实现
data = {
"name": "Alice",
"age": 25,
"email": "alice@domain.com"
}
# 检查输入数据类型是否为字典
if not isinstance(data, dict):
raise ValueError("Input must be a JSON object")
# 验证每个字段是否存在
for key, value in data.items():
if not isinstance(value, (int, float, str, dict)):
raise ValueError(f"Field {key} must be a {type(value).__name__}")
# 检查字符串字段格式是否正确
for key, value in data.items():
if isinstance(value, str):
if "'" in value:
raise ValueError(f"String field {key} must not contain quotes")
else:
print(f"String field {key} format is correct")
print("验证结果:")
print("- 数据类型符合预期(整数、字符串、对象)")
print("- 字符串字段格式正确(未使用引号)")
总结
该程序通过验证输入的JSON数据结构,有效检查字段存在性、数据类型和字符串格式,确保数据格式符合预期。代码实现简洁直观,适用于自动化验证场景,确保数据质量和可维护性。
这种方式不仅满足了技术要求,还通过清晰的注释和可运行性保证了代码的实用性。