【问题标题】:How to fix TypeError: object str can't be used in 'await' expression?如何修复 TypeError: object str can't be used in 'await' 表达式?
【发布时间】:2017-04-06 20:44:48
【问题描述】:

运行以下代码:

async def generate_url(self, ding_id):
    data = await self.s3.generate_presigned_url(
        ClientMethod='get_object',
        Params={
        'Bucket': '...',
        'Key': '{}.mp4'.format(ding_id)
        }
    )

    return data

def convert_to_json(self, data):
    loop = asyncio.get_event_loop()
    for ding in dings:
        tasks.append(self.generate_url(ding))

    video_ids = loop.run_until_complete(asyncio.gather(*tasks))
    loop.close()

导致错误:

'Key': '{}.mp4'.format(ding_id) 
TypeError: object str can't be used in 'await' expression`

我使用异步请求库aiohttp。如何解决这个问题?

【问题讨论】:

  • 没有请求;它只是生成一个字符串。
  • 我不明白。我想我打电话给generate_presigned_url 并提出了请求。但是,如何解决这个问题?

标签: python async-await aiohttp


【解决方案1】:

generate_presigned_url方法和simply returns the URL是同步的,这里不需要使用await。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多