使用python从api导出特定的json数据

jogvjijk  于 2022-11-08  发布在  PyCharm
关注(0)|答案(1)|浏览(123)

第一次在这里,我做了一个小的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上给我一个错误。

不一致.扩展命令.错误.命令调用错误:命令引发了异常:键错误:“使用的名称”

提前感谢:)

sr4lhrrt

sr4lhrrt1#

好吧,就我所知,从"usedNames"键所在的API请求返回的结果是嵌套的。

str(rs["otherNames"]["usedNames"])

我需要注意的是,在你给出的例子中,这将返回["ABCDE123","ABCDE1234","ABCDE12345","ABCDE1234567"]。你可能需要为最终产品格式化其他用户名的列表。
我希望这对你有帮助:)

相关问题