Python 列表转换或范围? (或者可能是 Discord py 特定问题)
Python list conversion or range? (or maybe Discord py specific issue)
我之前问过关于如何匹配列表中的元素的问题(这对帮助我解决这个问题可能很重要):
我想使用 J
这是我对上一个问题的期望结果来填充 embed.field.names 或嵌入的描述。但问题是它只是添加一个带有第一个结果的字段并发送嵌入,然后发送带有下一个结果的另一个嵌入,依此类推。参数中的 page = 1
尚未使用,但我想将其用于页码,以便我可以在单个嵌入中一次查看 25。
我希望这是有道理的,感谢帮助我的人:)
async def test(self, ctx, page = 1):
scan = f"privatelink"
async with aiohttp.ClientSession() as cs:
async with cs.get(scan) as r:
try: bag = ast.literal_eval(await r.text())
except: bag = json.loads(await r.text())
scan2 = 'privatelink'
async with aiohttp.ClientSession() as cs:
async with cs.get(scan2) as r:
c = json.loads(await r.text())
if bag == []:
await ctx.send("None")
return
bag = bag[0]['items']
emj = c['smiley']
nam = c['words']
for x in emj:
if x in bag:
for x in [emj.index(x)]:
J = c['words'][x]
e = discord.Embed(title=f"Test", color=discord.Colour(value=1111111),
description=f'')
e.add_field(name=J, value=f"")
await ctx.send(embed=e)
我只想在同一条嵌入消息中包含最多 25 个结果。我不希望机器人为每个结果发送一条新消息。
你的逻辑大错特错了。您为循环中的每个 x 创建了一个新的 Embed 并将其发送到循环内。如果您在循环之前创建嵌入并在循环完成时发送它,您将拥有一个包含多个字段的嵌入
e = discord.Embed(title=f"Test", color=discord.Colour(value=1111111),
description=f'')
for x in [emj.index(x)]:
J = c['words'][x]
e.add_field(name=J, value=f"")
await ctx.send(embed=e)
您可能还想注意对嵌套循环使用相同的变量名
如果你在 for x 循环中有一个 for x 你会改变 x 并且它很混乱。相反,你可以有一个 'for emoji in emojis' 然后嵌套的是 for x in [emj.index(x)]
希望我正确理解了你的问题
我之前问过关于如何匹配列表中的元素的问题(这对帮助我解决这个问题可能很重要):
我想使用 J
这是我对上一个问题的期望结果来填充 embed.field.names 或嵌入的描述。但问题是它只是添加一个带有第一个结果的字段并发送嵌入,然后发送带有下一个结果的另一个嵌入,依此类推。参数中的 page = 1
尚未使用,但我想将其用于页码,以便我可以在单个嵌入中一次查看 25。
我希望这是有道理的,感谢帮助我的人:)
async def test(self, ctx, page = 1):
scan = f"privatelink"
async with aiohttp.ClientSession() as cs:
async with cs.get(scan) as r:
try: bag = ast.literal_eval(await r.text())
except: bag = json.loads(await r.text())
scan2 = 'privatelink'
async with aiohttp.ClientSession() as cs:
async with cs.get(scan2) as r:
c = json.loads(await r.text())
if bag == []:
await ctx.send("None")
return
bag = bag[0]['items']
emj = c['smiley']
nam = c['words']
for x in emj:
if x in bag:
for x in [emj.index(x)]:
J = c['words'][x]
e = discord.Embed(title=f"Test", color=discord.Colour(value=1111111),
description=f'')
e.add_field(name=J, value=f"")
await ctx.send(embed=e)
我只想在同一条嵌入消息中包含最多 25 个结果。我不希望机器人为每个结果发送一条新消息。
你的逻辑大错特错了。您为循环中的每个 x 创建了一个新的 Embed 并将其发送到循环内。如果您在循环之前创建嵌入并在循环完成时发送它,您将拥有一个包含多个字段的嵌入
e = discord.Embed(title=f"Test", color=discord.Colour(value=1111111),
description=f'')
for x in [emj.index(x)]:
J = c['words'][x]
e.add_field(name=J, value=f"")
await ctx.send(embed=e)
您可能还想注意对嵌套循环使用相同的变量名 如果你在 for x 循环中有一个 for x 你会改变 x 并且它很混乱。相反,你可以有一个 'for emoji in emojis' 然后嵌套的是 for x in [emj.index(x)] 希望我正确理解了你的问题