Tkinter回调Python IndexError中的Tkinter异常:列表索引超出范围

如何解决Tkinter回调Python IndexError中的Tkinter异常:列表索引超出范围

我正在尝试制作一个可以创建日语 anki 套牌的应用程序,我已经有了代码,但我想用该代码制作一个应用程序,如果您转到“创建 Anki 套牌”,请输入汉字和名称文件并按«Es»(现在仅适用于西班牙语)您会收到此错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python3.8/tkinter/__init__.py",line 1883,in __call__
    return self.func(*args)
  File "/home/cristobal/Documentos/Programation/Python/Japanese/kanjiGraphics.py",line 255,in <lambda>
    self.languageButtons.append(tkinter.Button(self.window,text = i.capitalize(),bg = "#ffffff",fg = "#2c2c2c",bd = "3",highlightcolor = "#f5f5f5",font = font,command= lambda: self.WriteCalc(self.kanjisEntry[1].get("1.0","end"),self.kanjisEntry[0].get("1.0",kanji.GetKanjiMeaningsEs(self.kanjisEntry[0].get("1.0","end")),kanji.GetKanjiReadingsEs(self.kanjisEntry[0].get("1.0",kanji.GetKanjiExpamplesEs(self.kanjisEntry[0].get("1.0",kanji.GetKanjiExampleReadingsEs(self.kanjisEntry[0].get("1.0",kanji.GetKanjiExampleMeaningEs(self.kanjisEntry[0].get("1.0","end")))))
  File "/home/cristobal/Documentos/Programation/Python/Japanese/kanji.py",line 282,in GetKanjiReadingsEs
    readings = paragraph[0].text
IndexError: list index out of range

我做了print(len(parapragh))(段落是存储日语字符(汉字)信息的页面)在那里我得到了错误,首先我得到了 82,但它再次打印了 0,也许是请求或 ID:/

此外,如果您打印 paragraph[0],它会一直工作到 readings = paragraph[0]

它可能与参数函数有关,因为在这部分我必须将函数作为参数传递:

self.languageButtons.append(tkinter.Button(self.window,"end")))))

这是返回错误的脚本 返回错误的函数是 GetKanjisReadingEs()

#Libraries
import webbrowser #This library open pages in your main web browser
import requests #This library get the html code of a page
from bs4 import BeautifulSoup #This library prettify the html code


#Get Kanjis Meanings
def GetKanjiMeaningsEs(kanjis):
    allMeanings = []

    #Get the meaning of japanese character

    return allMeanings

#Get japanese characters readings
def GetKanjiReadingsEs(kanjis):

    allReadings = [] #The list where the readings will be stored
    for kanji in kanjis: #This for goes trough all the japanese characters you pass
        kanjiURL = f"https://japonesbasico.com/kanji/{kanji}" #The link
        kanjiRequest = requests.get(kanjiURL) #Get the page from the link

        soup = BeautifulSoup(kanjiRequest.text,"html.parser") #Get the html code of the page

        paragraph = soup.select("p") #Get all the elements with <p> tag in soup

        print(len(paragraph)) #This print for no reason prints twice,first 83 and second 0 (i think this is why index out of range)
        
        readings = paragraph[0].text #Get the first <p> tag what always is the readings #Here i get the error

        end = readings.find("Lecturas japonesas") #Get the value where it has to stop

        chineseReadings = "" #Where the chinese reading (onyomi) of the character will be stored
        japaneseReadings = "" #Where the japanese reading (kunyomi) of the character will be stored
        
        e = 0 #This is a counter
        for i in readings: 
            if e > len("Lecturas chinas") and e < end: #Get the characters between the word chinese readings and the word japanese readings
                chineseReadings += i
            e += 1

        e = 0
        for i in readings:
            if e >= end + len("Lecturas japonesas: "): #Get the characters between the word japanese readings and the end
                japaneseReadings += i 
            e += 1

        allReadings.append([chineseReadings,japaneseReadings]) #Add the readings of one kanji,more kanjis more elements

    return allReadings

#Get words with the kanjis
def GetKanjiExpamplesEs(kanjis):
    allExamples = []

    #Get examples of japanese characters

    return allExamples

def GetKanjiExampleReadingsEs(kanjis):
    allExampleReadings = []

    #Get the reading (how to read) the examples

    return allExampleReadings

#Get example words meaning with the notes (the parentesis after the reading) of the kanji
def GetKanjiExampleMeaningEs(kanjis):
    allExampleMeanings = []

    #Get the meaning of the examples

    return allExampleMeaning

这是我的代码的“tkinter”部分:https://paste.pythondiscord.com/ilinonugum.rb

这里是获取日文字符信息的代码:https://paste.pythondiscord.com/kotapiwosi.py

这是运行应用程序的代码(仅实例化类):https://paste.pythondiscord.com/imuvuyikoy.py

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res