擅长:python、mysql、java
<p>正如@VisioN和我发现的<a href="https://stackoverflow.com/questions/52285419/aggregating-an-async-generator-to-a-tuple">here</a>所提到的,问题不是混合异步和同步循环。问题在于使用tuple()连接迭代。使用[]作为列表解决了此问题。实际上,tuple()不是列表理解,而是获取一个生成器并调用“iter”来生成一个tuple。因此,以下代码起作用:</p>
<pre><code>async def get_accumulator_providers(order: OrderDTO) -> Tuple[str, ...]:
bucket_mapping = await read_config(order)
return tuple([item for bucket in bucket_mapping async for item in
dispatch_bucket(order, bucket, bucket_mapping[bucket], frozenset(accumulator_filters))])
</code></pre>