将条目插入mysqldb,条目值存储为字典python

时间:2012-11-26 16:00:23

标签: python mysql mysql-python

我已将要插入到db中的条目存储为字典,字典键与字段名称相同。是否有任何简单的命令直接执行此操作?

目前这是我使用的命令

cursor.execute('INSERT INTO jobs (title, description, country, state, city) 
VALUES (%(title)s, %(description)s, %(country)s, %(state)s, %(city)s)', (job_data.get_parsed_dictionary()))

很多时候,python有很多优雅的库方法可用于各种各样的事情。我希望有一个这样的命令可以使它更简单。

1 个答案:

答案 0 :(得分:0)

您可以生成列名称:

data = job_data.get_parsed_dictionary()

columns = ', '.join(data.keys())
parameters = ', '.join(['%({0})s'.format(k) for k in data.keys()])
query = 'INSERT INTO jobs ({columns}) VALUES ({parameters})'.format(columns=columns, parameters=parameters)

cursor.execute(query, data)

需要确保.get_parsed_dictionary()结果中的键可以安全地插入到SQL查询中(记住你的SQL注入攻击向量)。如果你有一个可能的列名列表,我肯定会检查它,以过滤掉你dict中可能找到的任何流浪'额外'键。