我已将要插入到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有很多优雅的库方法可用于各种各样的事情。我希望有一个这样的命令可以使它更简单。
答案 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
中可能找到的任何流浪'额外'键。