用mysql游标方法在Pythhon中使用替换

2024-10-03 23:21:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个以模式命名的数据库。数据库名称

例如:house_1house_2house_2

在我的Python(2.7)脚本中,传递了一个变量(house_id)。该变量包含1、2或3等

我需要能够建立一个连接到适当的数据库取决于房子的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的例子是错误的。但我认为这说明了我正在努力实现的目标。也许不是

我主要是在玩字符串替换,并且遇到了如下错误:

String Object has no attribute cursor".

提前谢谢。我知道这是一个模糊的问题。我对此感到相当沮丧


Tags: 脚本id数据库hostdbconnectorconnectmysql
1条回答
网友
1楼 · 发布于 2024-10-03 23:21:34

创建一个函数并将db_name传递给它

使用with自动关闭connectioncursor。(无需像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:
        ...

相关问题 更多 >