我有一个包含一些 mysql 表的数组,我想迭代和可视化。 例如,但程序不工作
tab=["spectreH20","spectreH50"]
for features in tab:
sqlf="select * from WHERE table_name like",features
df=sql.read_sql(sqlf,conn)
print df
最佳答案
你有几个问题。
"select * from WHERE table_name like"
不是有效的 SQL 查询,sqlf = "select * from WHERE table_name like", features
不是有效的字符串格式,所以 sqlf
最终成为一个元组。
在理想情况下,您会使用参数化查询(或“准备好的语句”),但这些不适用于 FROM 子句。
作为折衷,您可以简单地使用字符串格式:
tab=["spectreH20", "spectreH50"]
for features in tab:
sqlf = "select * from {}".format(features)
df = sql.read_sql(sqlf,conn)
print df
但请注意,此方法会暴露给 SQL 注入(inject),一般不应使用(取决于您是否信任输入 features
的来源)。
您最好的选择是简单地对查询进行硬编码。
关于python - 在python中迭代mysql表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37703320/