NoneType没有属性.format

时间:2014-08-06 23:37:26

标签: python sqlite if-statement string-formatting

我连接到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 :(得分:0)

在您的代码中看起来像声明:

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

必须是

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

有关字符串格式here

的更多信息