python-3.x - 使用aiohttp,将响应体解析为动态类型
问题描述
我的目标是从调用的返回值中动态解析 HTTP 响应正文aiohttp.ClientSession.get
。是否有实现此目的的内置方法?在下面的例子中,我实现了这个逻辑:
import aiohttp
import asyncio
async def get_req(url, parse_as='json', params=None):
async with aiohttp.ClientSession() as session:
async with session.get(url, params=params) as r:
parse_methods = {
'json': r.json,
'binary': r.read,
'text': r.text
}
target_method = parse_methods.get(parse_as)
return await target_method()
asyncio.run(get_req('<some_link>', 'text')) # Will return text data from body of response.
我的大脑告诉我这不是最好的方法,但到目前为止,我还没有找到任何示例来解释如何为aiohttp.ClientSession
的 HTTP 方法设置动态解析类型。我想将会话保持在aiohttp
本地get_req
。
我的总体问题是:如何以更易读和更有效的方式实现此逻辑?
解决方案
推荐阅读
- c# - SQLXMLBulkLoad 的 .NET 核心替代方案
- python - PyQt5:如何在 PyQt5 中使用进度条?
- r - 测试R中比例之间的差异
- mysql - 客户端中的 MySQL LOAD DATA LOCAL INFILE 差异
- python - 根据某些条件(在 Python 中)将字符串(行)添加到特定位置
- networkx - igraph中的函数“共享邻居分布”
- ios - 如何检测用户何时单击 lyft 按钮 swift
- angular - 视频播放器控件在 Safari 中不起作用
- javascript - 显示前十个字符,点击(或悬停)展开
- php - 如何修复 WordPress 中的“警告:preg_match() [function.preg-match]:编译失败:在偏移量 1 处没有可重复的内容”