gpt4 book ai didi

python - 在python中添加动态表名

转载 作者:行者123 更新时间:2023-11-29 15:34:54 25 4
gpt4 key购买 nike

在给定的查询中,我尝试将表名称作为用户的输入:

import MySQLdb
import csv
conn=MySQLdb.connect("localhost","root","","graphdata")

c=conn.cursor()
a= raw_input("Enter the table name")
sql='''SELECT distinct sku FROM %s_management'''
c.execute(sql,str(a))
rows=c.fetchall()

file=open('mine.csv','a+')

for eachRow in rows:
print eachRow
a=eachRow
file.write(str(a)+"\n")

file.close()

我想要的是编译器应该是

Enter table name:

我应该输入表名称

Enter table name: inventory

它应该在查询中连接起来:

sql='''SELECT distinct sku FROM inventory_management'''

但到目前为止我遇到了这些错误:

 c.execute(sql,str(a))
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 198, in execute
query = query % args
TypeError: not all arguments converted during string formatting


File "change.py", line 7, in <module>
sql='''SELECT distinct sku FROM %s'''(a)
TypeError: 'str' object is not callable


c.execute("SELECT distinct sku FROM %s_management")(a)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 219, in execute
self.errorhandler(self, exc, value)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 38, in defau
lterrorhandler
raise errorvalue
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax
; check the manual that corresponds to your MySQL server version for the right s
yntax to use near '%s_management' at line 1")

最佳答案

使用format()字符串

>>> sql='SELECT distinct sku FROM {}_management'.format(a)
>>> sql
>>> 'SELECT distinct sku FROM inventory_management'

然后您只需将查询传递给光标即可:

c.execute(sql)

关于python - 在python中添加动态表名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58348095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com