簡體   English   中英

類型為“ NoneType”的對象沒有len()

[英]object of type 'NoneType' has no len()

這里可以找到類和其他文件,我需要使用lambda函數嗎? 我通常會收到以下錯誤和最遠的錯誤消息,它們是“ object of type 'NoneType' has no len()

Traceback (most recent call last):
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/ggwrksv0.03.py", line 32, in <module>
    button_1 = Button(mw, text="Submit", command=print_function())
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/ggwrksv0.03.py", line 21, in print_function
    synonyms = thesaurus.get_synonyms(define_me)
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/py2mwapi.py", line 60, in get_synonyms
    synonyms = self._parse_xml_for_synonyms(result)
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/py2mwapi.py", line 41, in _parse_xml_for_synonyms
    main_entry = self._get_xml_root(xml)
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/py2mwapi.py", line 32, in _get_xml_root
    if not len(first_entry):
TypeError: object of type 'NoneType' has no len()



 from Tkinter import *
#import settings
import py2mwapi

APIKEY = 'f1778399-c8c8-48fd-b6d8-4afd40ce0530'
APIKEY_T = 'a39b602f-93d0-491f-b4e7-2730b9cea4c2'

#################################################

def copytext():
    #print entry_1.get()
    entry_2.delete(0, END)  #remove any previous contents
    entry_2.insert(0, entry_1.get())

def print_function():
    dictionary = py2mwapi.DictionaryAPI(APIKEY)
    thesaurus = py2mwapi.ThesaurusAPI(APIKEY_T)
    define_me = "zeus"

    definition = dictionary.get_definition(define_me)
    synonyms = thesaurus.get_synonyms(define_me)
    related_words = thesaurus.get_related_words(define_me)
    print define_me
#################################################

mw = Tk()
label_1 = Label(mw, text="Enter some text: ")
entry_1 = Entry(mw)
label_2 = Label(mw, text='Output: ')
entry_2 = Entry(mw)

button_1 = Button(mw, text="Submit", command=print_function())



label_1.grid(row=0, column=0, sticky=W)
entry_1.grid(row=0, column=1)
label_2.grid(row=1, column=0, sticky=W)
entry_2.grid(row=1, column=1)
button_1.grid(row=3, columnspan=2, sticky=E)


mainloop()

這是我以前的嘗試,也沒有用:

from Tkinter import *
import py2mwapi
import settings



#################################################

def copytext():
    #print entry_1.get()
    entry_2.delete(0, END)  #remove any previous contents
    entry_2.insert(0, entry_1.get())
#################################################

mw = Tk()

label_1 = Label(mw, text="Enter some text: ")
entry_1 = Entry(mw)
label_2 = Label(mw, text='Output: ')
entry_2 = Entry(mw)
button_1 = Button(mw, text="Submit", command=copytext)

define_me = entry_1.get()

dictionary = py2mwapi.DictionaryAPI(settings.APIKEY)
thesaurus = py2mwapi.ThesaurusAPI(settings.APIKEY_T)

definition = dictionary.get_definition(define_me)
synonyms = thesaurus.get_synonyms(define_me)
related_words = thesaurus.get_related_words(define_me)

label_1.grid(row=0, column=0, sticky=W)
entry_1.grid(row=0, column=1)
label_2.grid(row=1, column=0, sticky=W)
entry_2.grid(row=1, column=1)
button_1.grid(row=3, columnspan=2, sticky=E)


mainloop()

錯誤:

Traceback (most recent call last):
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/test.py", line 28, in <module>
    definition = dictionary.get_definition(define_me)
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/py2mwapi.py", line 89, in get_definition
    definition = self._parse_xml_for_def(result)
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/py2mwapi.py", line 77, in _parse_xml_for_def
    main_entry = self._get_xml_root(xml)
  File "/home/tech-ministry/dictionary_Merriam-Webster_API/py2mwapi.py", line 32, in _get_xml_root
    if not len(first_entry):
TypeError: object of type 'NoneType' has no len()

您需要將按鈕連接到功能,而不是功能的結果。 刪除()

button_1 = Button(mw, text="Submit", command=print_function)
                                                           ^

錯誤告訴您出了什么問題-您正在嘗試對值為None東西調用len函數。 您必須弄清楚為什么first_entry設置為None

如果first_entry完全正確為None ,則可以修改代碼以處理這種情況:

if first_entry is not None and len(first_entry):
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM