我有一个指向数据库中的术语的索引列表
这是我的代码:
for doc in TSS:
tokens = word_tokenize(doc[1])
tokens = [token.lower() for token in tokens if len(token) > 2]
tokens = [token for token in tokens if token not in words]
tokens = [stemmer.stem(token) for token in tokens]
final_tokens.extend(tokens)
sql = """SELECT id_term FROM tss_terms WHERE tss_terms.term IN %s"""
pram = [final_tokens]
cursor.execute(sql, pram)
ids = list(cursor.fetchall())
count = 0
data[doc[1]] = {'tf': {}, 'ntf': {}}
for token in final_tokens:
data[doc[1]]['tf'][token] = freq(token,final_tokens)
data[doc[1]]['ntf'][token] = tf(token,final_tokens)
query = """INSERT INTO tss_term_freq(id_term,id_doc,tf,normalized_tf)VALUES(%s,%s,%s,%s)"""
param = [ids[count],doc[0],data[doc[1]]['tf'][token],data[doc[1]]['ntf'][token]]
#cursor.execute(query, param)
count = count + 1
del final_tokens[:]
print count
ids
列表总是在第14次迭代时获得error : list index out of range
。
TSS [13]的值是这样的:
(5927L, 'PERHITUNGAN POHON KELAPA SAWIT PADA CITRA FOTO UDARA\r\nYANG BERBASIS BENTUK MAHKOTA POHON')
那么TSS [14]的值是这样的:
(6698L, 'SINKRONISASI WAKTU METER LISTRIK BERDASARKAN GLOBAL POSITIONING SYSTEM (GPS) PADA SUPERVISORY CONTROL AND DATA ACQUISITION (SCADA) BERBASIS WEB')
TSS包含我大学的论文题目和论文题目
任何人都可以表明我的错误并修复它吗?
请帮助:(
答案 0 :(得分:0)
声明列表“id”的方式是错误的。 我没有得到你在那里做的事情。 但是如果想要存储fetchall()函数返回的所有值,那么使用for循环来执行它。 声明一个空列表id。 id = [] 使用for循环获取所有值。 并保存列表使用中的值 id.append(值)