如何将元组列表转换为字符串?

2 投票
5 回答
2725 浏览
提问于 2025-04-15 23:05

我有一个元组的列表,想把它们放进一个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语句本身应该只包含占位符。

例如,MySQLdb的官方文档展示了如何做到你想要的

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'

撰写回答