python - 在python中迭代mysql表

标签 python mysql sql

我有一个包含一些 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/

相关文章:

python - 有没有一种有效的方法,可以在每个样本之间使用 NaN 对 dask 或 xarray 进行上采样?

python - 如何在不刷新页面的情况下正确显示外部模型中存储的数据?

php - HY000 - 2014 - 当其他未缓冲的查询处于事件状态时无法执行查询

mysql - 按日期时间sql合并两个表

mysql - 按组合并行

python - Pandas dataFrame.nunique() : ("unhashable type : ' list '", ' occured at index columns')

Python 正则表达式到 VB.net

mysql - 如何编写一个 SQL 查询来检索同一列上具有 2 个条件的所有行

mysql - 在查询中序列化 MySQL 关系数据

java - MySql JDBC 模板上的 StatementCallback 错误