Bài đăng trên blog này sẽ giúp bạn hiểu xác thực Lược đồ JSON trong Python, sử dụng
pip install jsonschema
2 trình xác thực Lược đồ JSON hoàn chỉnh và tuân thủ nhấtDự án GITHUB. python-xác thực-json-lược đồ
Lược đồ JSON là một đặc tả cho định dạng dựa trên JSON để xác định cấu trúc của dữ liệu JSON. Nó được viết theo dự thảo của IETF đã hết hạn vào năm 2011. Lược đồ JSON
- Mô tả định dạng dữ liệu hiện tại của bạn
- Tài liệu rõ ràng, con người và máy có thể đọc được
- Hoàn thành xác thực cấu trúc, hữu ích cho thử nghiệm tự động
- Hoàn thành xác thực cấu trúc, xác thực dữ liệu do khách hàng gửi
Hiện tại, trình xác thực Lược đồ JSON hoàn chỉnh và tuân thủ nhất có sẵn cho python là
pip install jsonschema
2Đưa ra dưới đây là một lược đồ JSON cơ bản, bao gồm các chi tiết cơ bản về người dùng
{
"$schema":"//json-schema.org/draft-04/schema#",
"title":"User",
"description":"A user request json",
"type":"object",
"properties":{
"id":{
"description":"The unique identifier for a user",
"type":"integer"
},
"name":{
"description":"Name of the user",
"type":"string"
},
"contact_number":{
"type":"number"
}
},
"required":[
"id",
"name",
"contact_number"
]
}
pip install jsonschema
4 là một triển khai Lược đồ JSON cho Python. Sử dụng pip install jsonschema
4, chúng tôi có thể tạo một lược đồ theo lựa chọn của mình, vì vậy, mỗi khi chúng tôi có thể xác thực tài liệu JSON dựa trên lược đồ này, nếu nó được thông qua, chúng tôi có thể nói rằng tài liệu JSON hợp lệKeywordDescription$schemaTừ khóa $schema nói rằng lược đồ này được viết theo đặc điểm kỹ thuật dự thảo v4. tiêu đềBạn sẽ sử dụng điều này để đặt tiêu đề cho lược đồ của mình. mô tảMột mô tả nhỏ về lược đồ. type Từ khóa type xác định ràng buộc đầu tiên đối với dữ liệu JSON của bạn. nó phải là một Đối tượng JSON. propertiesXác định các khóa khác nhau và các loại giá trị của chúng, giá trị tối thiểu và tối đa sẽ được sử dụng trong tệp JSON. bắt buộcĐiều này giữ một danh sách các thuộc tính cần thiết. tối thiểuĐây là ràng buộc được đặt trên giá trị và đại diện cho giá trị tối thiểu có thể chấp nhận được. ExclusiveMinimumNếu “exclusiveMinimum” xuất hiện và có giá trị boolean là true, thì phiên bản hợp lệ nếu nó hoàn toàn lớn hơn giá trị của “minimum”. tối đaĐây là ràng buộc được đặt trên giá trị và đại diện cho giá trị tối đa có thể chấp nhận được. ExclusiveMaximumNếu “exclusiveMaximum” xuất hiện và có giá trị boolean là true, thì phiên bản hợp lệ nếu nó hoàn toàn thấp hơn giá trị của “maximum”. multipleOfA thể hiện số hợp lệ đối với “multipleOf” nếu kết quả của phép chia thể hiện cho giá trị của từ khóa này là một số nguyên. maxLengthĐộ dài của một thể hiện chuỗi được định nghĩa là số ký tự tối đa của nó. minLengthĐộ dài của một thể hiện chuỗi được định nghĩa là số ký tự tối thiểu của nó. mẫuMột thể hiện chuỗi được coi là hợp lệ nếu biểu thức chính quy khớp thành công với thể hiệnBạn có thể kiểm tra một http. // json-lược đồ. org để biết danh sách đầy đủ các từ khóa có thể được sử dụng để xác định lược đồ JSON. Lược đồ trên có thể được sử dụng để kiểm tra tính hợp lệ của mã JSON sau đây
Đầu tiên, cài đặt
pip install jsonschema
4 bằng lệnh pippip install jsonschema
Tập lệnh Python
import json
import jsonschema
from jsonschema import validate
def get_schema[]:
"""This function loads the given schema available"""
with open['user_schema.json', 'r'] as file:
schema = json.load[file]
return schema
def validate_json[json_data]:
"""REF: //json-schema.org/ """
# Describe what kind of json you expect.
execute_api_schema = get_schema[]
try:
validate[instance=json_data, schema=execute_api_schema]
except jsonschema.exceptions.ValidationError as err:
print[err]
err = "Given JSON data is InValid"
return False, err
message = "Given JSON data is Valid"
return True, message
# Convert json to python object.
jsonData = json.loads['{"id" : "10","name": "DonOfDen","contact_number":1234567890}']
# validate it
is_valid, msg = validate_json[jsonData]
print[msg]
Nhập Json
{"id" : 10,"name": "DonOfDen","contact_number":1234567890}
- Trước tiên, chúng tôi chuyển đổi JSON đầu vào thành đối tượng python bằng cách sử dụng
1, sau đó sử dụng hàmpip install jsonschema
4pip install jsonschema
3, chúng tôi xác thực đầu vào đã cho bằng Lược đồ JSON được cung cấppip install jsonschema
Nếu bạn cố chạy đoạn mã trên, đầu ra sẽ là
pip install jsonschema
4Thử nghiệm với loại đầu vào khác
Hãy kiểm tra với đầu vào json thay thế, Nếu bạn kiểm tra tập lệnh python ở trên Phương thức
pip install jsonschema
5 sẽ đưa ra một ngoại lệ nếu JSON đã cho không phải là thứ được mô tả trong lược đồ________số 8
Trong json đầu vào ở trên, chúng tôi đã sửa đổi
pip install jsonschema
6 từ số nguyên thành chuỗi pip install jsonschema
7pip install jsonschema
1Tài liệu tham khảo
Vui lòng tham khảo python-validate-json-schema một trong những dự án của tôi, nơi tôi đã học cách triển khai ở trên