第一次在这里,我做了一个小的discord.py机器人作为一个项目来试验一下python/apis。我的目标是当被要求时从api中打印不一致的特定数据。下面是所讨论的代码。
@client.command()
async def otherusers(ctx, player):
rs = requests.get(apiLink + "/checkban?name=" + str(player))
if rs.status_code == 200:
rs = rs.json()
embed = discord.Embed(title="Other users for" + str(player), description="""User is known as: """ + str(rs["usedNames"]))
await ctx.send(embed=embed)
以下是API请求的示例
{"id":1536171865,"avatar":"https://secure.download.dm.origin.com/production/avatar/prod/userAvatar/41472001/208x208.PNG","name":"_7cV","vban":{"A1 Army of One":{"bannedUntil":null,"reason":"ping >1000"}},"ingame":[],"otherNames":{"updateTimestamp":"2022-07-08T10:10:50.939000","usedNames":["ABCDE123","ABCDE1234","ABCDE12345","ABCDE1234567"]}}
如果我将字符串更改为***str(rs[“otherNames”])***,它确实起作用,但我希望只包括用户名,如果我将***str(rs[“usedNames”])***和请求放在不一致的位置,它会在PyCharm上给我一个错误。
不一致.扩展命令.错误.命令调用错误:命令引发了异常:键错误:“使用的名称”
提前感谢:)
1条答案
按热度按时间sr4lhrrt1#
好吧,就我所知,从
"usedNames"
键所在的API请求返回的结果是嵌套的。我需要注意的是,在你给出的例子中,这将返回
["ABCDE123","ABCDE1234","ABCDE12345","ABCDE1234567"]
。你可能需要为最终产品格式化其他用户名的列表。我希望这对你有帮助:)