Weryfikowanie encji za pomocą schematów JSON

Aby weryfikować elementy podczas tworzenia lub aktualizowania pliku danych, użyj tych schematów JSON. Schematy są oparte na specyfikacji schematu JSON. Dodając test jednostkowy, który ma weryfikować generowane przez Ciebie elementy, możesz wykrywać problemy, które mogłyby wpłynąć na jakość pliku danych. Możesz też używać tych schematów podczas tworzenia pliku danych, aby uniknąć typowych błędów.

Wybieranie schematu działań związanych z multimediami

  • Schemat wideo na żądanie weryfikuje elementy Movie, TVEpisode, TVSeries i TVSeason.
  • Schemat transmisji na żywo sprawdza elementy BroadcastEvent, BroadcastService, CableOrSatelliteService, Movie, Organization, SportsEvent, TelevisionChannel, TVEpisode, TVSeason i TVSeries.
  • Schemat muzyczny weryfikuje elementy MusicAlbum, MusicGroup, MusicPlaylist i MusicRecording.
  • Schemat radiowy sprawdza elementy RadioBroadcastService.

Jako źródło informacji użyj specyfikacji na tej stronie, ponieważ te schematy mogą nie zawierać wszystkich funkcji.

Wybierz weryfikator

Listę implementacji walidatorów znajdziesz na stronie json-schema.org.

Podane schematy są napisane w wersji draft 7, więc aby wybrana implementacja działała prawidłowo, musi obsługiwać tę wersję.

Przykład weryfikacji

Ten przykład pokazuje, jak sprawdzić wszystkie elementy w pliku feed.json za pomocą pliku schematu schema.json i modułu Pythona jsonschema. Obiekty znajdują się w własności dataFeedElement zgodnie z dokumentacją o opakowaniu pliku danych.


    import json
    from jsonschema import validate

    # Loading the schema file
    with open("schema.json", "r") as fp:
        schema = json.load(fp)

    # Opening the feed
    with open("feed.json", "r") as fp:
        feed = json.load(fp)

    # Validating each entity in the feed
    for entity in feed["dataFeedElement"] :
        try:
            validate(schema=schema, instance=entity)
            print("Entity validated successfully")
        except Exception as e:
            # e may contain an explanation as to why the entity wasn't valid
            print("Failed to validate the entity")