我正在现有的机器人上构建一个命令,该命令将搜索API并以棒球选手的名字作为参数来查询json响应。我已经使所有内容在测试中都能正常工作,只是为了我一生,我不知道如何将结果限制为仅包含那些在discord中调用命令时传递的查询参数的结果。
例如:用户将键入!card Adam Dunn,并且仅返回键“ name”的值“ Adam Dunn”。目前,无论参数键入什么内容,都将发送整个结果的第一页,并且在我运行嵌入逻辑的情况下,每个结果都会获得单独的嵌入,这是不理想的。
为了便于阅读,我只包含了相关的代码行,而没有包含大量的结果。
它一定是非常简单的东西,但是我想我一直盯着它看太久了。任何帮助将不胜感激,谢谢!
下面是运行命令时的控制台输出:
这是我目前正在使用的代码:
async def card(ctx, *, player_name: str):
async with ctx.channel.typing():
async with aiohttp.ClientSession() as cs:
async with cs.get("https://website.items.json") as r:
data = await r.json()
listings = data["items"]
for k in listings:
if player_name == k["name"]
print()```
更新:
我是个白痴。可以正常工作,但是因为player_name
我要搜索的内容不在结果的第一页上,所以没有显示。当使用player_name
API结果首页上的时,它可以正常工作。
这是一个分页问题,而不是键值问题。