Проверка объектов с помощью схем JSON

Для проверки сущностей при создании или обновлении фида используйте следующие схемы JSON. Схемы основаны на спецификации JSON Schema . Добавив модульный тест для проверки создаваемых вами объектов, вы можете обнаружить проблемы, которые могут повлиять на качество канала. Вы также можете использовать эти схемы при разработке своего фида, чтобы избежать распространенных ошибок.

Выберите схему действий с мультимедиа

  • Схема Video On Demand проверяет сущности Movie , TVEpisode , TVSeries и TVSeason .
  • Схема Live TV проверяет объекты BroadcastEvent , BroadcastService , CableOrSatelliteService , Movie , Organization , SportsEvent , TelevisionChannel , TVEpisode , TVSeason и TVSeries .
  • Music Schema проверяет объекты MusicAlbum , MusicGroup , MusicPlaylist и MusicRecording .
  • Радиосхема проверяет объекты RadioBroadcastService .

Используйте спецификацию на этом сайте как источник истины, поскольку в этих схемах могут быть реализованы не все функции.

Выберите валидатор

Список реализаций валидаторов можно найти на сайте json-schema.org .

Предоставленные схемы написаны в проекте 7 , поэтому выбранная вами реализация должна поддерживать эту версию для правильной работы.

Пример проверки

В следующем примере показано, как проверить все объекты, присутствующие в файле feed.json с помощью файла схемы schema.json и модуля Python jsonschema . Сущности находятся в свойстве dataFeedElement , как указано в документации конверта канала данных .


    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")