0

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

目前这是我使用的命令

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 有很多优雅的库方法来处理各种各样的事情。我希望有一个这样的命令可以使它更简单。

4

1 回答 1

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

于 2012-11-26T16:04:04.150 回答