繁体   English   中英

如何使用python在read_sql_query中插入变量

[英]how to insert variables in read_sql_query using python

我试图借助变量从sqlite3检索数据。 它与execute()语句一起正常工作,但我也想检索列,因此我正在使用read_sql_query()但无法在read_sql_query()传递变量,请遵循以下代码:

def cal():
  tab = ['LCOLOutput']
  column_name = 'CUSTOMER_EMAIL_ID'
  xyz = '**AVarma1@ra.rockwell.com'
  for index, m in enumerate(tab):
      table_name = m
      sq = "SELECT * FROM ? where ?=?;" , (table_name, column_name, xyz,)
      df = pandas.read_sql_query(sq,conn)
      writer = 
      pandas.ExcelWriter('D:\pandas_simple.xlsx',engine='xlsxwriter')
      df.to_excel(writer, sheet_name='Sheet1')
      writer.save()

您需要更改该方法的语法read_sql_query()pandas ,检查文档

对于sqlite,它应与:

sq = "SELECT * FROM ? where ?=?;" 
param = (table_name, column_name, xyz,)
df = pandas.read_sql_query(sq,conn, params=param)

编辑:否则,请尝试使用表的以下格式:

sq = "SELECT * FROM {} where ?=?;".format(table_name)
param = (column_name, xyz,)
df = pandas.read_sql_query(sq,conn, params=param)

检查此答案,解释为什么表不能直接作为参数传递。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM