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

时间:2014-06-10 18:06:41

标签: python mysql

如何从Python dict自动创建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'])

但是有没有办法根据第一部分中指定的键值对自动生成insert语句?这样可以更轻松地添加其他密钥。

1 个答案:

答案 0 :(得分:2)

只要与表中的字段有1:1的对应关系就像@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 + ");"