Объект InlineResponse2002 не может быть подписан | Как мне манипулировать ответом API? - PullRequest
0 голосов
/ 11 февраля 2020

Код:

import time
import giphy_client
from giphy_client.rest import ApiException
from pprint import pprint

def giphyapi():
    api_instance = giphy_client.DefaultApi()
    api_key = '################################'
    tag = 'test'
    rating = 'pg-13'
    fmt = 'json'

    try:
        # Search Endpoint
        api_response = api_instance.gifs_random_get(api_key, tag = tag, rating = rating, fmt = fmt)
        ## here’s where I want to do stuff with the data
    except ApiException as exc:
        print("Exception when calling DefaultApi->gifs_random_get: %s\n" % exc)
    return None

giphyapi()

Привет! Как мне преобразовать api_instance в нечто манипулируемое, например, в dict?
Это та же проблема, что и this , но решение, которое, к сожалению, нашел автор вопроса, у меня не сработало.

Я пытался print(api_response.data[0].images.type), но это выкинуло эту ошибку:
TypeError: объект 'RandomGif' не может быть подписан

Я также попробовал это:

for block in api_response["data"]:
    giftype = block["type"]

Но это сгенерировало эту ошибку: TypeError: 'InlineResponse2002' объект не может быть подписан

Я использую Python 3.8.1, и я также использую giphy- python -client . Здесь - список RandomGif моделей. В двух примерах того, что я попробовал выше, я пытаюсь найти: type.

Любая помощь очень ценится! ?

1 Ответ

0 голосов
/ 12 февраля 2020

Я решил это благодаря shoot2thr1ll284 на Reddit.

Вы просто используете api_response.data.type и заменяете type на свойство, которое хотите получить.

...