Weryfikowanie encji za pomocą schematów JSON

Aby sprawdzić elementy podczas tworzenia lub aktualizowania pliku danych, użyj tego kodu JSON Schemat. Schematy są oparte na specyfikacji schematu JSON. Dodając test jednostkowy, aby zweryfikować wygenerowane elementy, możesz wykrywać problemy wpływające na jakość pliku danych. Możesz też używać tych schematów podczas podczas opracowywania pliku danych, by uniknąć typowych błędów.

Wybierz schemat Media Actions

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

Użyj specyfikacji dostępnej na tej stronie jako źródła informacji, ponieważ te schematy mogą nie obsługiwać wszystkich zaimplementowanych funkcji.

Wybierz walidator

Listę implementacji walidatora znajdziesz na stronie json-schema.org.

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

Przykład weryfikacji

Z przykładu poniżej dowiesz się, jak sprawdzić wszystkie elementy w pliku feed.json za pomocą pliku schematu schema.json i modułu Pythona jsonschema. Podmioty znajdują się w właściwość dataFeedElement zgodnie z opisem w dokumentacji koperty 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")