• Как создать правильно API запрос на Python?

    @o5a
    Ошибка в том, что вместо запятых в тексте должны быть &.
    Но лучше вообще вручную так строку не составлять. Для этого есть встроенная функция, которая сама конвертирует в строку, а заодно учтет и кодирование для спецсимволов и кириллицы.

    from urllib.parse import urlencode
    
    params = {
        "text":  'russia',
        "day": 1,
        "month": 1
    }
    
    param_str = urlencode(params)
    # формируем полную ссылку
    api_url = f'https://api.api-ninjas.com/v1/historicalevents?{param_str}'
    print(api_url) # https://api.api-ninjas.com/v1/historicalevents?text=russia&day=1&month=1
    Ответ написан
    3 комментария
  • Как выполнять функцию python каждый день в определенное время?

    MaxLevs
    @MaxLevs
    Используя стандартный модуль threading.
    Пример
    from time import sleep, time
    from functools import wraps
    
    
    def mult_threading(func):
         """Декоратор для запуска функции в отдельном потоке"""
         @wraps(func) 
         def wrapper(*args_, **kwargs_): 
             import threading 
             func_thread = threading.Thread(target=func,  
                                            args=tuple(args_),  
                                            kwargs=kwargs_) 
             func_thread.start()
             return func_thread 
         return wrapper
    
    
    #  Сразу делаем функцию многопоточной
    @mult_threading 
    def some_func(x, y, name="Petia", df=None, *args, **kwargs): 
         sleep(5) #  Тут мы чего-то доолго ждем / вычисляем / etc
         print("X = %s; Y = %s; Name=%s; df=%s" % (x, y, name, df)) 
         print("Another args:", args, kwargs)
    
    
    #  ==Проверяем работу==
    #  Стартуем нашу долгоиграющую функцию
    some_func(4, 7, df=11, 21, clone="SomeClone")
    
    #  Занимаемся очень важными делами
    for Z in range(25): 
        print(Z)
        sleep(0.2)


    Результат
    5c46b2b44f46b621492560.gif
    Ответ написан
    3 комментария