Làm cách nào để kiểm tra xem json có hợp lệ trong python không?

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ất

Dự á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":"http://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ện

Bạ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 pip

pip 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: https://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
    pip install jsonschema
    
    1, sau đó sử dụng hàm
    pip install jsonschema
    
    4
    pip install jsonschema
    
    3, chúng tôi xác thực đầu vào đã cho bằng Lược đồ JSON được cung cấp

Nếu bạn cố chạy đoạn mã trên, đầu ra sẽ là

pip install jsonschema
4

Thử 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
7

pip install jsonschema
1

Tà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

Làm cách nào để kiểm tra khóa JSON có tồn tại hay không trong Python?

Kiểm tra xem khóa có tồn tại hay không trong JSON . Ghi chú. Chúng tôi đã sử dụng json. loading() để chuyển đổi dữ liệu được mã hóa JSON thành từ điển Python. Sau khi chuyển dữ liệu JSON thành từ điển, chúng ta có thể kiểm tra xem khóa có tồn tại hay không .

Bạn có thể xác thực JSON không?

Lược đồ JSON là một công cụ mạnh mẽ. Nó cho phép bạn xác thực cấu trúc JSON của mình và đảm bảo cấu trúc đó đáp ứng API bắt buộc . Bạn có thể tạo một lược đồ phức tạp và lồng nhau như bạn cần, tất cả những gì bạn cần là các yêu cầu. Bạn có thể thêm nó vào mã của mình dưới dạng thử nghiệm bổ sung hoặc trong thời gian chạy.

Cú pháp Python có hợp lệ của JSON không?

Python hỗ trợ JSON tự nhiên .