Python,字符串正在返回索引器:列表索引超出范围

2024-05-12 18:59:56 发布

您现在位置:Python中文网/ 问答频道 /正文

get_code="https://localhost:8080/soieurow/KPP/alksdjfhlkjhekajhf?eowuiro=akleireyi&URL=https%3A%2F%2Flocalhost:8080%2Fmga%2Fsps%2Foauth%2Foauth20%2Fauthorize%3Fresponse_type%3Dcode%26scope%3Dopenid%2Bname%2Bemail%2Bpostal_code%26client_id%3Dthaljlwej%26redirect_uri%3Dhttp%3A%2F%2Faklsdjfhwekdisd.com%3A5006%2Fredirectcode%26nonce%3DQJT8RbymFk%26acrakdjasd%3DD1%26token%3DfkasjfhalskfhlaksjhkL61bqqADtekpH-HE55lZaX2LJH4Ii9diraseufhalksfhl%26correlation_id%3D4102479872341%26support_encryption%3Dsj2aljkadfj3%26state%3Dajk1234"
code='code'
if code in get_code:
    code=get_code.split("code=")[1][:47]
    print("i havce code",code)
else:
    print("i don't find code")

我正在传递字符串,但索引器:列表索引超出范围


Tags: inhttpslocalhosturlgetifcodesplit
2条回答

索引错误是关于第一个([1])而不是第二个([:47])。 这是因为get_code字符串根本不包含任何code=字符串
下面是发生的情况:

  • split方法返回被code=分割的子字符串列表;它依次找不到任何code=并返回整个get_code字符串作为长度为1的数组。(即返回["https://..."]
  • 但是您希望获取返回数组的第二个元素(从[1]部分开始),这会导致错误,因为数组在0索引处只有一个元素

您的错误是,您询问字符串中是否包含“code”,但按“code=”分割。修复这个问题,代码将按预期工作

相关问题 更多 >