使用asynci存储属性值

2024-09-24 00:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试以下代码:

    import asyncio
    import smmrpy

    s = smmrpy.SMMRPY("286C6866B9")
    URL = 'https://stackoverflow.blog/2018/09/13/ibm-and-stack-overflow-partner-to-support-ai-developers/'

    async def main():
        article = await s.get_smmry(URL)

        print(article.content)
        print(article.keywords)

    if __name__ == "__main__":
        loop = asyncio.get_event_loop()
        loop.run_until_complete(main())

它总结了使用SMMRY(https://smmry.com/)和asyncio(提供了100个请求的API密钥)的网站。smmrpy模块创建一个“article”对象,虽然它可以打印属性,但我无法像通常那样将它们存储在变量/列表中,例如:

    import asyncio
    import smmrpy

    s = smmrpy.SMMRPY("286C6866B9")
    URL = 'https://stackoverflow.blog/2018/09/13/ibm-and-stack-overflow-partner-to-support-ai-developers/'

    async def main():
        article = await s.get_smmry(URL)

        print(article.content)
        print(article.keywords)
        # option 1:
        # content = article.content
        # option 2:
        # return article
        # content = getattr(article, 'content')     

    if __name__ == "__main__":
        loop = asyncio.get_event_loop()
        loop.run_until_complete(main())

我想做的是将属性值存储在一个变量中,以便进一步导出。你知道我做错了什么吗?你知道吗


Tags: httpsimportloopasynciourlgetmainarticle
1条回答
网友
1楼 · 发布于 2024-09-24 00:31:22

发现问题时,问题是变量作用域。函数中的变量是局部变量,不能在函数中全局调用。此块修复了问题并打印了两次,没有错误:

import asyncio
import smmrpy

s = smmrpy.SMMRPY("286C6866B9")
URL = 'https://stackoverflow.blog/2018/09/13/ibm-and-stack-overflow-partner-to-support-ai-developers/'

async def main():
    article = await s.get_smmry(URL)
    global contents
    contents = article.content  
    print(contents) 
    print(article.keywords)

if __name__ == "__main__":
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

print(contents)

相关问题 更多 >