2012-03-12 62 views
0
TypeError: unsupported operand type(s) for %: 'tuple' and 'dict' 

爲名稱的表我需要創建一個包含的變量

variable = '12345' 

如何: 「」 「插入%(可變)(ID)VALUES(%S)」 「」

idunidad = 2501 
sql = ("""insert into %(variable)s (id) VALUES (%s)""") 
if cursor.execute(sql, (idunidad,) % {table_name: table_name}): 
    db.commit() 
    cursor.close() 
    db.close() 

問題是代碼將變量名稱me嚴格地作爲文本並且不指定變量的名稱。

的想法是找到表之間的變量「12345」的名稱,如果沒有與變量的名稱創建表:

else: 
    cursor.execute('''create table variable stocks (id)''') 
    cursor.execute(sql,(id,)) 
    db.commit() 
    cursor.close() 
    db.close() 

回答

0
variable = '12345' 
idunidad = 2501 
sql = ("""insert into u_%(variable)s (id) VALUES (%(idunidad)s)""" % dict(table_name = table_name)) 
try: 
    cursor.execute(sql): 
    db.commit() 
    cursor.close() 
    db.close() 
except: 
    cursor.execute('''create table u_%(variable)s stocks (id)''' % dict(table_name = table_name)) 
    cursor.execute(sql) 
    db.commit() 
    cursor.close() 
    db.close() 
相關問題