python - 在Python中使用替换与mysql游标方法

标签 python mysql

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

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

我主要是在尝试字符串替换,并且收到如下错误:“

String Object has no attribute cursor".

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

最佳答案

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

使用with会自动关闭连接光标。(不需要像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:
        ...

关于python - 在Python中使用替换与mysql游标方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56907521/

相关文章:

python - 属性错误 : 'DataFrame' object has no attribute 'group'

php - MySQL编码utf8_general_ci

mysql - 将表导出到csv文件

python - 在 python 中按频率值排序列表

python - 如何使用 nbconvert+pandoc 以 pdf 格式呈现 pd.DataFrame 表

python - 使用 Python OpenCV 在模糊对象周围找到紧密轮廓

mysql - Pentaho Kettle 插入步骤的错误处理

php - 如何将电子邮件发送到从数据库中获取的包含其他数据的电子邮件数组

mysql - 具有多个外连接的笛卡尔连接到公共(public)根

python - 如何保留可变长度