从键值对自动生成Python中的INSERT查询

0 投票
1 回答
2201 浏览
提问于 2025-04-18 09:19

我该如何从一个Python字典自动生成MySQL的插入语句呢?

file_info['filename'] = 'image.jpg'
file_info['size'] = 1682
file_info['id'] = 'a4Fabaz125'

现在,我是手动指定每一个值:

query = """INSERT INTO files
           (filename, size, id)
            VALUES (%s, %s, %s)""",
            (file_info['filename'], file_info['size'], file_info['id'])

但是有没有办法根据第一部分指定的键值对自动生成插入语句呢?这样的话,添加更多的键就会简单很多。

1 个回答

3

只要表格中的字段和@MarcB所说的一一对应:

file_info={}
file_info['filename'] = 'image.jpg'
file_info['size'] = 1682
file_info['id'] = 'a4Fabaz125'

fields = ', '.join(file_info)
values = ', '.join(str(x) for x in file_info.values())
print fields
print values
# size, id, filename
# 1682, a4Fabaz125, image.jpg

query = "INSERT INTO files (" + fields + ") VALUES (" + values + ");"

撰写回答