以下是我通常在MySQLdb
中添加参数的方法:
cursor.execute('INSERT INTO main_territory (code, name) VALUES (%s, %s)', (item[0], item[1]))
有没有办法让字符串格式更直观?例如,如果INSERT
中有50个参数。类似的东西:
cursor.execute('''INSET INTO main_territory (code, name) VALUES ({code}, {name})''',
{code=item[0], name=item[1}
)
答案 0 :(得分:1)
这取决于数据库驱动程序。通常,如果支持位置参数(%s
),那么使用%(name)s
格式命名参数可以是:
cursor.execute(
'''INSERT INTO main_territory (code, name) VALUES (%(code)s, %(name)s)''',
{'code': item[0], 'name': item[1]})
然后将参数值作为字典传入。
最常用的MySQL数据库适配器MySQLdb支持这种风格。
其他数据库适配器使用?
和:name
作为位置和命名参数;您可以查询模块上paramstyle
attribute使用的样式:
>>> import MySQLdb
>>> MySQLdb.paramstyle
'format'
但是因为大多数驱动程序都支持位置和命名样式,所以它们通常只命名一个('format'
或'qmark'
),同时也支持命名变体。请务必参阅文档以验证这一点。