NoneType没有属性.format

0 投票
1 回答
2453 浏览
提问于 2025-04-18 16:19

我连接了一个sqlite数据库,想在选中的数据上执行一段代码。

import langid
...#connecter etc. to database
languagedata = []
connector = sqlite3.connect("GERMANY.db")
selecter = connector.cursor()
selecter.execute(''' SELECT title FROM DATAGERMANY''') #select only the title
for row in selecter: #iterate through all the rows in db
    languagedata.append(row) #append to list
    if languagedata is not None: #check weather datatype is None or not
        print (langid.classify("{}")).format(languagedata[-1]) #-1 for always take the last appended attribute of the list
    else:
        continue #if datatype is none, continue with next one

一开始我没有加if语句,这样就出现了一个错误信息:AttributeError: 'NoneType' object has no attribute 'format'

所以我加了if语句来检查数据是不是None类型。现在在第一次循环的时候可以正常工作,它会取列表中的第一个属性并传给langid。但是之后我又遇到了和之前一样的错误信息。

我到底哪里做错了呢?

需要注意的是,并不是所有的rows都会有数据,有些是没有数据的。

1 个回答

0

看起来你代码里的这行:

print (langid.classify("{}")).format(languagedata[-1])

应该改成:

print (langid.classify("{}.format(languagedata[-1]")))

关于字符串格式化的更多信息可以在这里找到。

撰写回答