python列表在迭代14时超出范围?

时间:2016-10-05 13:03:44

标签: python

我有一个指向数据库中的术语的索引列表

这是我的代码:

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包含我大学的论文题目和论文题目

任何人都可以表明我的错误并修复它吗?

请帮助:(

1 个答案:

答案 0 :(得分:0)

声明列表“id”的方式是错误的。 我没有得到你在那里做的事情。 但是如果想要存储fetchall()函数返回的所有值,那么使用for循环来执行它。 声明一个空列表id。 id = [] 使用for循环获取所有值。 并保存列表使用中的值 id.append(值)