Warm tip: This article is reproduced from serverfault.com, please click

python 3.x-无法获取client.command参数以通过discord.py中的键值解析API响应

(python 3.x - Can not get client.command parameter to parse API response by key value in discord.py)

发布于 2020-11-28 02:15:38

我正在现有的机器人上构建一个命令,该命令将搜索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()```
Questioner
LankyRyan
Viewed
0
LankyRyan 2020-11-30 09:30:17

更新:

我是个白痴。可以正常工作,但是因为player_name我要搜索的内容不在结果的第一页上,所以没有显示。当使用player_nameAPI结果首页上的时,它可以正常工作。

这是一个分页问题,​​而不是键值问题。