поиск мультимедиа на основе фильтров с помощью API фотографий Google (Python)

Я пытаюсь использовать метод mediaItems().search(), используя следующее тело:

body = {
        "pageToken": page_token if page_token != "" else "",
        "pageSize": 100,
        "filters": {
            "contentFilter": {
                "includedContentCategories": {"LANDSCAPES","CITYSCAPES"}
            }
        },
        "includeArchiveMedia": include_archive
    }

но проблема в том, что набор {"LANDSCAPES","CITYSCAPES"} на самом деле должен быть набором перечислений (как в перечислениях Java), а не строками, как написано ive. это указано в API: (https://developers.google.com/photos/library/reference/rest/v1/albums)

ContentFilter - этот фильтр позволяет возвращать элементы мультимедиа в зависимости от типа контента.

Представление JSON

{
  "includedContentCategories": [
    enum (ContentCategory)
  ],
  "excludedContentCategories": [
    enum (ContentCategory)
  ]
}

есть ли правильный способ решить эту проблему в Python?


person Hadar Sharvit    schedule 07.10.2020    source источник


Ответы (1)


Пункты модификации:

  • Когда используются albumId и filters, возникает ошибка The album ID cannot be set if filters are used.. Поэтому, если вы хотите использовать filters, удалите albumId.
  • The value of includedContentCategories is an array as follows.
    • "includedContentCategories": ["LANDSCAPES","CITYSCAPES"]
  • includeArchiveMedia is includeArchivedMedia.
  • Включите includeArchivedMedia в filters.

Когда вышеуказанные пункты отражаются в вашем скрипте, он становится следующим.

Измененный скрипт:

body = {
    # "albumId": album_id,  # <--- removed
    "pageToken": page_token if page_token != "" else "",
    "pageSize": 100,
    "filters": {
        "contentFilter": {
            "includedContentCategories": ["LANDSCAPES", "CITYSCAPES"]
        },
        "includeArchivedMedia": include_archive
    }
}

Ссылка:

person Tanaike    schedule 08.10.2020
comment
@Hadar Sharvit Спасибо за ответ. Я рад, что ваша проблема решена. - person Tanaike; 09.10.2020