在python mySQLdb中创建一个动态表名

时间:2015-05-12 20:21:27

标签: python

我正在尝试编写一个程序,我遍历一个字符串列表并使用这些字符串为我的表格命名,但是我不太明白如何正确地逃避一切而不会出现错误。 现在是我的代码:

cursor = db.cursor()
cursor.execute('DROP TABLE IF EXISTS %s' %data[1])

0L

sql ="""CREATE TABLE %s  (IP TEXT, AVAILIBILITY INT)""" %data[1]
cursor.execute(sql)
0L

for key in data[0]:

    cursor.execute("""INSERT INTO %s VALUES (%s,%s)""" %(data[1],key,data[0][key]))
    db.commit()


1L
cursor.execute("""SELECT * FROM %s""" %data[1])
1L
print cursor.fetchall()
((188L, 90),) 
db.close()

当我输入字符串而不是表示字符串的变量时,我的代码有效,但使用变量时失败

1 个答案:

答案 0 :(得分:0)

你应该在这一行中使用字符串格式

sql ="""CREATE TABLE data[1] (IP TEXT, AVAILIBILITY INT, AP TEXT )"""

当你调用cur.execute(sql)方法时,这会引发errorclass或/和errorvalue错误。

尝试这样的事情:

sql ="""CREATE TABLE %s (IP TEXT, AVAILIBILITY INT, AP TEXT )""" %data[1]