我有多个以模式命名的数据库。数据库名称
例如:house_1
,house_2
,house_2
在我的Python(2.7)脚本中,传递了一个变量(house_id)。该变量包含1、2或3等。
我需要能够根据house_id建立与相应数据库的连接。
分别是这样的:
house1_db = mysql.connector.connect(user="root", password="mypassword!", host="127.0.0.1", database="house_1")
cursor = house1_db.cursor
以这种方式做对我来说似乎很笨拙。我正在寻找一种等效于字符串替换的方法。
因此,脚本已通过house_id = 6
然后:
house%d_db = mysql.connector.connect(user="root", password="mypassword!", host="127.0.0.1", database="house_%d") % house_id
cursor = house%d_db.cursor % house_id
我知道上述带有%d
的示例是错误的。但是我认为这说明了我正在努力实现的目标。也许不是。
我主要是在玩字符串替换,并且遇到类似“
的错误字符串对象没有属性游标”。
先谢谢了。我知道这是一个模糊的问题。我对此感到非常沮丧!
答案 0 :(得分:0)
创建一个函数并将db_name
传递给它。
使用with
自动关闭connection
和cursor
。(无需像conn.close()
,cursor.close()
那样显式关闭它)
尝试一下
def create_conn(db_name):
return mysql.connector.connect(user="root", password="mypassword!", host="127.0.0.1", database=db_name)
with create_conn('house_1') as conn:
with conn.cursor() as cursor:
...