Как исправить ошибку «AttributeError: у объекта« dict »нет атрибута ...» в утверждении Python - PullRequest
1 голос
/ 14 апреля 2019

Я устанавливаю подтверждение запроса с помощью модуля запроса и ключевого слова python assert, но получаю

AttributeError: у объекта 'dict' нет атрибута 'documents_url'

когда я пытаюсь утвердить строку в ответе json.Как мне утверждать что-то в ответе json, и когда условие истинно, оно должно что-то распечатать?

import requests
import pprint

URL = 'https://github.com/timeline.json'

def get_github_json(URL):
    response = requests.get(URL).json()
    return response

assert get_github_json(URL).documentation_url == 'https://developer.github.com/v3/activity/events/#list-public-events'

Ответ json выглядит следующим образом:

{'documentation_url': 'https://developer.github.com/v3/activity/events/#list-public-events',
 'message': 'Hello there, wayfaring stranger. If you’re reading this then you '
            'probably didn’t see our blog post a couple of years back '
            'announcing that this API would go away: http://git.io/17AROg Fear '
            'not, you should be able to get what you need from the shiny new '
            'Events API instead.'
}

1 Ответ

7 голосов
/ 15 апреля 2019

Привет, потому что это словарь, тогда вы должны получить значение с ключом.

Мы знаем, response - это словарь, поэтому в этом случае, когда вы хотите получить значение из documentation_url, нам нужно сделать это следующим образом:

    def get_github_json(url):
        response = requests.get(url).json()
        return response

    assert get_github_json(url)['documentation_url'] # <---- your are getting the value by giving the key

Если выпопробуйте распечатать response['documentation_url'], тогда вы получите такой результат: https://developer.github.com/v3/activity/events/#list-public-events

...