从字典创建 SQL 查询

Roc*_*e28 2 python mysql sql dictionary

我有一个更新数据库(MySQL)中的条目的函数,它需要尽可能动态。

该函数允许 API 用户传递记录的 id,然后使用 kwargs 来处理要更改的值(可以传递的值数量没有限制)。

假设我从 kwargs 那里得到了这本字典

{'hello':'world', 'foo':'bar'}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在更新语句中使用它。

UPDATE myTable
SET key_n = val_n, key_n+1 = val_n+1, ...
WHERE id = the_id_passed_to_the_function
Run Code Online (Sandbox Code Playgroud)

提前致谢。

Sha*_*shi 5

尝试这个:

def UpdateQuery(data,where):
    if isinstance(data, dict) and where:
        vals = ','.join(["%s=?" %(k) for k,v in data.iteritems()])
        query = "update myTable set %s where id=?" % (vals)
        res = cr.execute(query,where)
Run Code Online (Sandbox Code Playgroud)