170 похожих чатов

Что исправить, чтобы пока ждем ответа на запрос рандомайзер

готовил уже следующее задание? А то получается, что в данном случаи генерируется 500 запросов, они отправляются, ждем ответа, и уже потом опять генерируются запросы. Да, еще и это записываем.

async def get_pokemon(session, url):
async with session.get(url) as resp:
if resp.status == 200:
pokemon = await resp.json(content_type=None)
return pokemon['name']
else:
pokemon = 'no name or resp error'
return pokemon

async def main():
async with aiohttp.ClientSession() as session:
while True:
tasks = []
for i in range(500):
r = random.randint(1,500)
url = f'https://pokeapi.co/api/v2/pokemon/{r}'
tasks.append(asyncio.ensure_future(get_pokemon(session, url)))
original_pokemon = await asyncio.gather(*tasks)
for pokemon in original_pokemon:
with open("pokemons.txt", "a") as f:
f.write(pokemon + '\n')

13 ответов

13 просмотров

Использовать не gather, а create_task. gather не дает потоку пройти дальше, пока все таски не выполнятся

Mania-Moon Автор вопроса
Илья Власов
Использовать не gather, а create_task. gather не д...

Илья, не получилось исправить код используя create_task, как посоветовали. Не хватило мозгов. На могли бы помочь внести исправления если много не нужно переделывать.

Покажи как ты используешьл

Mania-Moon Автор вопроса
Илья Власов
Покажи как ты используешьл

Перебирал много вариантов вчера, уже был не у компа. Последний код, что написал, ниже. Скорость нулевая. Толи await не там толи вообще не правильный подход. Хотел сделать лучше, чтобы программа не спала вообще, увеличив скорость, а получилось хуже.. ладно тут randint быстро работает, а если вместо него будет что-то по медленнее, тогда вообще пол века выполняться будет. Помогите) async def get_api(client, url): async with client.get(url) as response: return await response.json() async def pok(): async with aiohttp.ClientSession() as session: for i in range(15): r = random.randint(1,500) url = f'https://pokeapi.co/api/v2/pokemon/{r}' task = asyncio.create_task(get_api(session, url)) poky = await task print(poky['name']) loop = asyncio.get_event_loop() loop.run_until_complete(pok())

Mania-Moon Автор вопроса
Mania-Moon Автор вопроса

Код текстом меняет формат в чате хз почему

Ты авейтишь таску в той же итерации цикла. Не замечаешь проблемы?

Mania Moon
Код текстом меняет формат в чате хз почему

На monospace лучше переводить, все отступы сохраняются

Mania-Moon Автор вопроса
V
На monospace лучше переводить, все отступы сохраня...

Всегда так делал, в этот раз после отправки сообщения убирает форматирование, вот и проблема

Mania Moon
screenshot

Не надо сразу после создания таски ее авейтить, она начинает выполняться и без этого

Mania Moon
Всегда так делал, в этот раз после отправки сообще...

из редакторов, в моём случае pycharm, скопированный код уже вставляется в телегу в monospace

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта