首页 > 解决方案 > 在 Python 中使用 mysql 游标方法进行替换

问题描述

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

例如: 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是错误的。但我认为它说明了我正在努力实现的目标。也许不吧。

我主要是在玩字符串替换,但遇到如下错误:“

字符串对象没有属性光标”。

提前致谢。我知道这是一个模糊的问题。我对此感到非常沮丧!

标签: pythonmysql

解决方案


创建一个函数并传递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:
        ...

推荐阅读