我是 Python 的新手(以及一般的编程),我正在制作一个不和谐的机器人,它将帮助我完成我的学校日程安排。所以我想输入 !schedule 来获取我当天的日程安排。我有一个指向我朋友制作的“API”的链接,它是“https://apischoolsoft.herokuapp.com/v1/schedule/TE19?today=true”。
代码如下:
lessons = str('https://apischoolsoft.herokuapp.com/v1/schedule/TE19?
today=true')
lessons = lessons.replace('och', '')
lessons = lessons.replace('}', '')
lessons = lessons.replace(']', '')
lessons = lessons.replace("'", '')
lessons = re.sub( '(?<!^)(?=[A-Z])', ' ', lessons )
lessons1 = lessons.split(",")
所以别人也给了我这个代码:
async def response2():
embed = discord.Embed(
title = 'Schema',
description = '',
colour = discord.Colour.blue()
)
embed.set_author(name='Schoolsoft')
embed.add_field(name='1', value=lessons1[1], inline=False)
embed.add_field(name='2', value=lessons1[2], inline=False)
embed.add_field(name='3', value=lessons1[3], inline=False)
embed.add_field(name='4', value=lessons1[4], inline=False)
embed.add_field(name='5', value=lessons1[5], inline=False)
return embed
但它说“命令引发了一个异常:IndexError:列表索引超出范围”,我相信它的值让它变得麻烦。我写了下面的代码来调用这个函数:
@client.command(name='schema', help='This command returns schema')
async def schema(ctx):
# responses = schoolsoft_api.get_lessons(token, school, org_id)
#await ctx.send(r.text)
#embed.add_field(name="Field1", value="hi", inline=False)
embed = await response2()
await ctx.send(embed=embed)
我希望有人能帮助我解决这个问题,因为让它工作真的很酷。我基本上想要的是,它会列出嵌入的链接中的所有内容,而不是原始链接,以便更好地查看。提前致谢!
答案 0 :(得分:0)
该错误几乎意味着您正在尝试访问列表中某个不存在的索引处的值,解释
>>> some_random_list = [1, 2, 3]
>>> some_random_list[0] # List indexes start at 0, not 1
1
>>> some_random_list[3]
IndexError: list index out of range
我猜您在将字段添加到 response2
函数中的嵌入时会遇到错误,请确保您没有弄乱索引并且列表的长度正确,您可以也使用 try/except
块