所以我正在使用可以查看機(jī)器人的命令進(jìn)行測(cè)試。它將檢測(cè) arg 并查找 arg 是否在事物中,如果在事物中它將打印以下信息。但是,它僅適用于最后的信息。我該如何修復(fù)它?命令代碼:@client.command(pass_context=True)async def viewbot(ctx, arg): for bot in data['bots']: name = bot["name"] #createdby = bot["createdby"] briefdesc = bot["briefdesc"] desc = bot["description"] slug = bot["slug"] if arg == f'{slug}': embed = discord.Embed(title=name,description=briefdesc,timestamp=ctx.message.created_at,colour=discord.Color.dark_green()) await ctx.send(embed = embed) else: print("no")JSON 代碼:{ "bots": [ { "name": "Bot1", "createdby": "Bit#0258", "briefdesc": "Texts.", "description": "Test", "library": "discord.py", "slug": "bot1" }, { "name": "Bot2", "createdby": "BotTest#0001", "briefdesc": "Text", "description": "Rext", "library": "discord.js", "slug": "bot2" } ]}如果您知道如何修復(fù)它,請(qǐng)回復(fù)此問題。謝謝。
1 回答

慕運(yùn)維8079593
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
看看你的邏輯:
for bot in data['bots']:
name = bot["name"]
#createdby = bot["createdby"]
briefdesc = bot["briefdesc"]
desc = bot["description"]
slug = bot["slug"]
if arg == f'{slug}':
...
您特別告訴它遍歷所有可用的機(jī)器人,提取它們的字段,并將每個(gè)字段寫入前一組數(shù)據(jù)的頂部。當(dāng)您離開循環(huán)時(shí),每個(gè)變量中只有最新值。這就是變量的工作原理。
要獲取所有值,請(qǐng)將處理(if)移至循環(huán)內(nèi),或?qū)?shù)據(jù)收集在列表中而不是標(biāo)量變量中。
添加回答
舉報(bào)
0/150
提交
取消