Python 如何使这些WebSocket异步工作?

Python 如何使这些WebSocket异步工作?,python,asynchronous,async-await,python-asyncio,Python,Asynchronous,Async Await,Python Asyncio,我对异步不太了解,我曾尝试将for循环转换为async for,但现在仅此而已 生成器的第一个元素正在工作,其余元素将被忽略。你怎么了 这个密码 async def get_requests(self, data, request_type): for x in data: r = [ 'subscribe_on_model', { 'collection': None,

我对异步不太了解,我曾尝试将for循环转换为async for,但现在仅此而已 生成器的第一个元素正在工作,其余元素将被忽略。你怎么了 这个密码

async def get_requests(self, data, request_type):
    for x in data:
        r = [
            'subscribe_on_model',
            {
                'collection': None,
                'id': None,
                'recursive': ''
            }
        ]

        r[1]['collection'] = request_type
        r[1]['id'] = x

        yield r

async def get_results(self):
    async with BaseWebsocket(self.uri) as ws:
        await ws.receive()
        sport_keys = list(self.sports.keys())
        sport_values = list(self.sports.values())

        bundle_requests = self.get_requests(sport_values, 'LineSport')
        async for bundle_request in bundle_requests:
            results = []
            sport_name = sport_keys[sport_values.index(bundle_request[1]['id'])]
            b_request = [bundle_request]
            await ws.send(b_request)
            b_response = await ws.receive()
            bundle_ids = b_response[0][1].get('lineCountryIds')

            if bundle_ids:
                championship_requests = self.get_requests(bundle_ids, 'LineCountry')
                async for championship_request in championship_requests:
                    c_request = [championship_request]
                    await ws.send(c_request)
                    c_response = await ws.receive()
                    championship_ids = c_response[0][1].get('lineChampionshipIds')
                    if championship_ids:
                        event_requests = self.get_requests(championship_ids, 'LineChampionship')

如果没有运行代码的能力,很难说代码出了什么问题。请附带提供一个。此外,您是否尝试过自己调试代码,例如,将
print
s放置在关键位置,告诉您程序在神秘停止之前可能已经进行了多远?如果您正在捕获异常,请确保记录它们。如果您正在生成任务,请确保等待它们。如果您收到类似“任务已销毁,但仍处于挂起状态”的警告,请务必在问题中提及这些警告。