Найти - Пользователи
Полная версия: Нужна помощь в отправке нескольких запросов GET(Python 3+)
Начало » Python для новичков » Нужна помощь в отправке нескольких запросов GET(Python 3+)
1
Alexlki
Нужно отправить get-запрос на https://api.chucknorris.io/jokes/random?category={category} так, чтобы вместо {category}, были запросы отсюда: https://api.chucknorris.io/jokes/categories, и в консоли выдавало шутку из каждой категории.
Могу просто написать все категории и условно подставлять их, но код будет большим и легким.
Неделю не могу автоматизировать, чтобы при запуске кода выходили рандомные шутки по каждой категории


 import requests
class test_api():
    """Создание шуток"""
    def __init__(self):
        pass
    def test_all_joke(self):
        """Создание всех категорий шуток"""
        url = "https://api.chucknorris.io/jokes/categories"
        print (url)
        result = requests.get(url)
        print("Статус-код : " + str(result.status_code))
        assert 200 == result.status_code
        print("Успешно! Категории шуток получены : ")
        print(result.text)
        result.encoding = "utf-8"
    def value_jokes(self):
        """Получение шутки из каждой категории"""
        url = "\nhttps://api.chucknorris.io/jokes/random?category="
        print(url)
        result = requests.get(url)
        print("Статус-код : " + str(result.status_code))
        print(result.json())
        assert 200 == result.status_code
        check = result.json()
        check_info = check.get("categories")
        print("Категория соответствует : ")
        print(check_info)
categories_joke = test_api()
categories_joke.test_all_joke()
jokes = test_api()
jokes.value_jokes()
py.user.next
Alexlki
Неделю не могу автоматизировать
Зачем ты класс сделал?

Понимаешь, выглядит дубово так всё, а задание простейшее.

Alexlki
Нужно отправить get-запрос на https://api.chucknorris.io/jokes/random?category={category} так, чтобы вместо {category}, были запросы отсюда: https://api.chucknorris.io/jokes/categories, и в консоли выдавало шутку из каждой категории.
1. Для начала напиши функцию, которая получает ссылку на список категорий в сети и возвращает список категорий в виде списка строк.
2. После этого напиши функцию, которая принимает имя категории и возвращает ссылку на список шуток в этой категории в сети в виде строки.
3. После этого напиши функцию, которая принимает ссылку на список шуток в категории в сети и возвращает шутки из этой категории в виде списка строк.
4. Потом вызови первую функцию, получи список названий категорий из неё и в цикле подавай каждое название категории во вторую функцию, получая ссылку на список шуток в этой категории, а потом вызывай третью функцию и передавай в неё ссылку на список шуток в категории, полученную из второй функции, и сохраняй возвращённые из третьей функции шутки в список строк.

Вот тебе пример функции, которая принимает число, что-то с ним делает и возвращает новое число
  
>>> def f(x):
...     return x * x
... 
>>> f(2)
4
>>> f(4)
16
>>> f(2) + f(4) + f(16)
276
>>>
Как видишь, никаких print'ов в этой функции нет. Заходит число, выходит число.

Дальше смотри, вот как можно сделать функцию, которая объединяет строки определённым образом и возвращает какой-то результат из всего этого
  
>>> def f(name, work):
...     out = 'Hello, {}! You are a good {}!'.format(name, work)
...     return out
... 
>>> f('John', 'manager')
'Hello, John! You are a good manager!'
>>> f('Lisa', 'nurse')
'Hello, Lisa! You are a good nurse!'
>>>
И опять никаких print'ов нет. Заходят строки, выходит строка.

А это пример того, как из одних функций передавать значений сразу в другие функции
  
>>> import random
>>> 
>>> def f1():
...     strings = ['John', 'Lisa', 'Jim', 'Lucy']
...     out = strings[random.randint(0, 3)]
...     return out
... 
>>> def f2():
...     strings = ['manager', 'cook', 'doctor']
...     out = strings[random.randint(0, 2)]
...     return out
... 
>>> def f3(name, work):
...     out = 'Hello, {}! You are a good {}!'.format(name, work)
...     return out
... 
>>> f3(f1(), f2())
'Hello, Lucy! You are a good cook!'
>>> f3(f1(), f2())
'Hello, Lisa! You are a good manager!'
>>> f3(f1(), f2())
'Hello, Jim! You are a good doctor!'
>>>

Вот так надо делать функции.
Alexlki
Спасибо большое за помощь!
gemmalyly
Конечно, я могу помочь вам отправить несколько запросов GET. Однако мне нужно больше информации о том, какие именно запросы GET вы хотите отправить и куда. Пожалуйста, предоставьте дополнительные детали или конкретные URL-адреса, которые вы хотите запросить, и я постараюсь вам помочь наилучшим образом.
connections game



This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB