NoneType没有属性.format
我连接了一个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]")))
关于字符串格式化的更多信息可以在这里找到。