如何将元组列表转换为字符串?
我有一个元组的列表,想把它们放进一个SQL查询里,但我不知道怎么把它们连接在一起而不加斜杠。我的列表是这样的:
list = [('val', 'val'), ('val', 'val'), ('val', 'val')]
如果我把每个元组变成字符串,然后试着用逗号把它们连接起来,我会得到类似这样的结果:
' (\'val\, \'val\'), ... '
那我该怎么做才能把这个列表(没有括号)变成一个字符串呢?
我想要的结果是:
q = """INSERT INTO test (feed,site) VALUES %s;""" % string
string = " ('val', 'val'), ('val', 'val'), ('val', 'val') "
5 个回答
1
你不应该这样做。看看用来执行你SQL语句的函数的定义。它们会处理格式化的问题。SQL语句本身应该只包含占位符。
2
使用MySQLdb时,executemany可以这样做。
cursor = db.cursor()
vals = [(1,2,3), (4,5,6), (7,8,9), (2,5,6)]
q = """INSERT INTO first (comments, feed, keyword) VALUES (%s, %s, %s)"""
cursor.executemany(q, vals)
4
像这样吗?
>>> l=[('val', 'val'), ('val', 'val'), ('val', 'val')]
>>> ','.join(map(','.join,l))
'val,val,val,val,val,val'