【问题标题】:How to convert a requests GET request in Python to asyncio with payloads?如何将 Python 中的请求 GET 请求转换为带有有效负载的异步?
【发布时间】:2023-01-10 22:42:56
【问题描述】:

我正在尝试使用 Python 的 asyncio 模块并行化对 Wikidata API 的请求。

我当前的同步脚本执行以下操作:

import requests

base_url = "https://www.wikidata.org/w/api.php&"
payload = {
        "action": "query",
        "list": "search",
        "srsearch": search_term,
        "language": "en",
        "format": "json",
        "origin": "*",
    }
res = requests.get(base_url, params=payload)

我正在尝试使用asyncio 来异步发送请求。

this blogpost 和文档,我知道我需要类似的东西:

from aiohttp import ClientSession

async with ClientSession() as session:
        async with session.get(url) as response:
            response = await response.read()

但是,我没有设法找到如何在请求中添加这些有效负载。我必须手动重建 URL 还是有办法以异步方式发送有效负载?

【问题讨论】:

  • 什么是ClientSession?请使您的代码完整。

标签: python python-requests python-asyncio wikidata-api


【解决方案1】:

试试下面的代码

async with ClientSession() as session:
        async with session.get(url, params=payload) as response:
            response = await response.read()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 2016-12-15
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多