cur.fetchone()[0]不是在赋值之前引用的可订阅(或)局部变量

时间:2018-02-19 09:33:06

标签: python sqlite

我在使用Sqlite时遇到了一些问题,尝试从SQL表中获取链接[1]我使用了两种方法(都失败了): 第一个显示:'NoneType'对象不可订阅

for k in range(len(Word)): #Word is a str 
    l=Word[k]
    cur.execute("SELECT link FROM G WHERE letter=='l'")
    img = mpimg.imread(cur.fetchone()[0])
    imgplot = plt.imshow(img)
    plt.show()
    time.sleep(5)

并且这个显示:在赋值之前引用的局部变量'img'

for k in range(len(Word)):
    l=str(Word[k])
    cur.execute("SELECT link FROM G WHERE letter=='l'")
    for e in cur:
        img = mpimg.imread(str(e[0]))
    imgplot = plt.imshow(img)
    plt.show()
    time.sleep(5)

并且是合成器“letter =='l'”工作? 为您提供帮助:)

[1]:https://imgur.com/TdPg4V6

1 个答案:

答案 0 :(得分:0)

您的代码中存在两个主要错误。

首先,在Python中,您(几乎)不应该遍历range(len(something))。只需迭代Word,直接给你字母。

其次,你没有把这封信传给你的SQL;你只是查询字面值“l”,这不在表中。您需要使用参数。

for l in Word:
    cur.execute("SELECT link FROM G WHERE letter==?", (l,))