在将 %sql 与 Python 一起使用时,如何删除从 python 传递到 %sql 的变量的引号?

While using %sql with Python, how to remove the quotes of a variable passing from python to %sql?

我正在尝试 运行 python 中的 for 循环,它迭代 postgresql 数据库中的所有 table 名称,并且 return 变量计数每个 table。但是,如果我使用 %sql 和 : 传递变量,该变量将带有引号并使 table 名称无效。例如:

tablename = 'film'
film_count = %sql select count(*) from :tablename 

我想通过 %sql 传递的是

film_count = %sql select count(*) from film

然而变成了

film_count = %sql select count(*) from 'film'

然后系统return语法错误:

(psycopg2.errors.SyntaxError) syntax error at or near "'film'"
LINE 1: select count(*) from 'film'
                             ^

谁能帮助我了解如何解决这个问题?谢谢!

https://pypi.org/project/ipython-sql/ 中的示例所示,: 将用引号将变量括起来。

改用${}