Как использовать выводимые значения из функции print() дальше в assert. ЯП Python (Питон)

Рейтинг: 1Ответов: 1Опубликовано: 11.02.2023

Я делаю запрос на сервер и в ответ получаю куки. Заранее я не знаю имя и значение куки, но мне нужно написать ассерт на то, что в ответ всегда приходит одинаковое имя куки и что оно вообще есть. Предлагается читать имя куки функцией print() но я не понимаю как после принта использовать эти значения дальше в ассершенах. Вот кусок вызова запроса к серверу

  response = requests.get(url)
  cookie_value = dict(response.cookies)
  print(cookie_value)

Задание требует обязательного использования print() т.е я должна узнать имя и значение куки с помощью принт и использовать дальше в ассерте.

Ответы

▲ 1Принят

С обязательным использованием print()

Если в задаче предполагается использование print() именно здесь, то это довольно странно. Но если это так, то, видимо, в задаче также предполагается использование input(). Это означает, что вам нужно после вывода увидеть глазами то, что вам нужно, и ввести имя куки через input():

name = input()
key = cookie_value[name]

Альтернативное

Но возможно, что вы не совсем понимаете поставленную перед вами задачу. print выводит уже имеющуюся у вас информацию — здесь он не нужен и, скорее всего, он нужен где-то в другом месте. В cookie_value уже лежит всё, что вам нужно — просто извлеките эту информацию оттуда.

Объясните, пожалуйста, какая структура у cookie_value — что там находится и что вы там ищете? Если там лежит всего лишь одна пара ключ-значение, которые вам как раз и нужны, то тогда вы легко можете получить их, используя следующую конструкцию:

name, value = list(cookie_value.items())[0]

Если там лежит больше информации, то тогда вам точно нужно знать, по крайней мере, где находится то, что вы ищете. Допустим, если в cookie_value находится много данных, но вы точно знаете, что искомые вами имя и значение куки находятся последними, то вы можете написать так:

name, value = list(cookie_value.items())[-1]

Решение также зависит и от того, что вы ищете. Возможно, вам нужно взять куки, у которого имя является числом или в имени присутствует какая-то строка. Тогда и решение будет отличаться.

UPD: дополнительное решение

Кажется, в задании просто просят вывести содержание cookie_value — все его ключи и значения. Решений может быть несколько:

for key, value in cookie_value.items()
    print(key, value)
for key in cookie_value:
    print(key, cookie_value[key])

Похоже, есть небольшой пробел в умении пользоваться словарями. Хотел бы порекомендовать почитать соответствующую статью о словарях, в которых подробно описаны их возможности и в частности о том, как получать данные из словарей с помощью items().