我失去了3个小时,我无法弄清楚我做错了什么。请帮忙。 我得出结论,它不会在更新语句中传递密钥,因为我没有收到任何错误,但我也没有更新数据库。
conn = sqlite3.connect('mov.db')
c = conn.cursor()
old_rows = c.execute('SELECT imdb FROM movies WHERE desc="" and imdb<>"" and year<"1997"')
result = c.fetchall()
for row in result:
key = row[0] [2:]
try:
# Get a Movie object with the data about the movie identified by
# the given movieID.
movie = i.get_movie(key)
except IMDbError, e:
print "Probably you're not connected to Internet. Complete error report:"
print e
continue
print movie['title']
if movie.has_key('plot outline'):
m=movie['plot outline']
print m
print key
c.execute('UPDATE movies SET desc=? WHERE imdb=?',(m,key))
print c.rowcount
# Commit the changes and close everything.
conn.commit()
c.close()
conn.close()
答案 0 :(得分:0)
continue
似乎在每次迭代时都会发生,因此永远不会执行c.execute('UPDATE ...
行。你确定你的代码缩进了吗?
答案 1 :(得分:0)
你在这里从键中剪切了两个字符,这就是为什么它不再匹配表中的键:
key = row[0] [2:]