python - Python列表转换或范围?(或者可能是 Discord py 特定问题)
问题描述
我问过关于如何匹配列表中的元素的上一个问题(在这个问题上帮助我可能很重要):
我想使用J
上一个问题的我想要的结果来填充 embed.field.names 或嵌入的描述。但问题是它只是添加一个带有第一个结果的字段并发送嵌入,然后发送另一个带有下一个结果的嵌入,依此类推。in 参数尚未使用,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 创建了一个新的嵌入,并将其发送到循环中。如果您在循环之前创建嵌入并在循环完成时发送它,您将拥有一个包含多个字段的嵌入
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,这会造成混淆。相反,您可以拥有一个“用于表情符号中的表情符号”,然后嵌套一个用于 [emj.index(x)] 中的 x 我希望我正确理解了您的问题
推荐阅读
- json - 如何将`docker ps`命令格式化为字典列表
- reactjs - React Native UseEffect 卡在循环调用函数中
- python - django - 我不能将 Q 过滤器模型与 2 个相关数据库一起使用
- json - 出了什么问题 错误:第 3 行解析错误:...e6Djjb7OlVWLtVZc""main": "","alts" -----------------^ Expecting 'EOF', '} ', ':', ',', ']', 得到 'STRING'
- r - ggplot - 图例键相对于图例标签的位置
- load-balancing - GRPC 客户端负载平衡:如何测量每个目标地址的响应时间?
- c# - 我将如何允许我在运行时使用 OnCollisionEnter2D 更改对象的标签
- c# - monobehaviour 中的公共变量,不会出现在 Unity 编辑器检查器中
- sql - 是否应该将长有序的 id 列表存储在数据库表的列中?
- node.js - Azure 上的 Nodejs + Redis 性能