You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Tkinter获取输入组件值时出现'NoneType' object has no attribute 'get'错误求助

问题排查与解决方案

嘿,这个错误我一眼就看出来啦!咱们先拆解一下问题根源:

错误原因

你遇到的AttributeError: 'NoneType' object has no attribute 'get',本质是因为你把组件创建和布局方法调用写在了同一行。比如这行代码:

CIK_Entry = Entry(window).grid(row=1, column=1)

Tkinter的grid()方法返回的是None,所以CIK_Entry变量实际存储的不是Entry组件的实例,而是None。当你在get_entries()函数里调用CIK_Entry.get()时,自然就会报错——None类型没有get方法。

Combobox组件的问题也是一样的,Filing_Entry = Combobox(...).grid(...)同样把变量赋值成了None。

修复后的完整代码

只需要把组件创建和布局拆分到两行,先实例化组件,再调用grid方法,就能解决这个问题:

from tkinter import Tk, Label, Entry, Button
from tkinter.ttk import Combobox

window = Tk()
window.title('SEC Scraper')
# 创建标题
Header = Label(text="Filing Data Collection")
Header.grid(row=0, column=0)

# 文本输入框
CIK_Label = Label(text="CIK Number: ")
CIK_Label.grid(row=1, column=0)
CIK_Entry = Entry(window)
CIK_Entry.grid(row=1, column=1)

As_of_Date_Label = Label(text="Filings as of (YYYYMMDD format): ")
As_of_Date_Label.grid(row=1, column=2)
As_of_Date_Entry = Entry(window)
As_of_Date_Entry.grid(row=1, column=3)

Number_of_filings_Label = Label(text="Number of Filings: ")
Number_of_filings_Label.grid(row=1, column=4)
Number_of_filings_Entry = Entry(window)
Number_of_filings_Entry.grid(row=1, column=5)

Filing_Type_Label = Label(text="Filing Type: ")
Filing_Type_Label.grid(row=1, column=6)

# 申报类型下拉菜单
Filing_choices = ['10-K', '10-Q', '8-K', 'S-8', 'S-1', '10-K/A', '10-Q/A', '8-K/A', 'S-8/A', 'S-1/A']
Filing_Entry = Combobox(window, width=10, values=Filing_choices)
Filing_Entry.grid(row=1, column=7)

def get_entries():
    CIK = CIK_Entry.get()
    As_of_Date = As_of_Date_Entry.get()
    Number_of_filings = Number_of_filings_Entry.get()
    Filing = Filing_Entry.get()
    # 可以在这里添加打印或存储逻辑,比如:
    print(f"CIK: {CIK}, Date: {As_of_Date}, Filings: {Number_of_filings}, Type: {Filing}")

Enter_Button = Button(window, text="Enter", command=get_entries)
Enter_Button.grid(row=1, column=8)
window.mainloop()

额外小提示

  1. 别忘了导入ttk.Combobox,你的原始代码里可能漏了这个导入(我已经在修复后的代码里加上了)
  2. 可以给输入框添加验证逻辑,比如确保CIK是数字、日期符合YYYYMMDD格式,避免无效输入
  3. 如果需要长期管理这些界面元素,用类来封装会让代码更整洁、易维护

内容的提问来源于stack exchange,提问作者Tyler Barrett

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:47:32