我想创建一个函数,我可以输入电影的类型和我想看到的顶行数。
我已经用sqlite建立了数据库。但是我不知道如何使用sqlite中的函数input。
我的代码:
def get_top_genre_actors(genre, k):
c.execute('''SELECT ma.actor, m.rating FROM movie_actor ma
LEFT JOIN movie m ON ma.imdb_id = m.imdb_id
ORDER BY m.rating DESC, ma.actor
LIMIT int(k)
''')
conn.commit()
get_top = c.fetchall()
print("Top 10 actors who played in highest rated ", genre, " movies:")
print("Actor, Average ", genre, " movie rating")
for x in get_top:
print(x[0],', ', x[1],sep="")
get_top_genre_actors("Drama", 5)
我得到的结果:
OperationalError: no such column: k
我知道错误的行是
LIMIT int(k)
如何做到正确?
最佳答案
你应该使用 placeholders .
def get_top_genre_actors(genre, k):
c.execute('''SELECT ma.actor, m.rating FROM movie_actor ma
LEFT JOIN movie m ON ma.imdb_id = m.imdb_id
ORDER BY m.rating DESC, ma.actor
LIMIT ?
''', (k,))
...
关于python - 使用 sqlite OperationalError : no such column 创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946659/