在我的情况下,我不太了解如何对SQL语句使用.format
。
我可以用它来定义列名吗?
它使用一个值,但不适用于整个元组。
sql_stmt = ("""UPDATE intmt_vals SET {0} = {1} WHERE ID={2};""".format(column, values, ids))
cur.execute(sql_stmt)
column
是外部字典column = k
中的键,例如'column1'
values
是来自内部字典vals = tuple(dict.get(k).values())
的值,例如(a, b, c, d, e, f,)
ids
是来自内部字典的键,例如ids = tuple(dict.get.(k).keys())
,例如
(1,2,3,4,5,6)
错误
mysql.connector.errors.DataError: 1241 (21000): Operand should contain 1 column(s)
。
答案 0 :(得分:2)
是的,这很容易做到。但您只应在设置列名称时使用url = 'https://datos.madrid.es/egob/catalogo/205026-0-cementerios.json'
r = requests.get(url, headers={"User-Agent": "curl/7.61.0"})
print(r.json())
。原因:MySQL parameterized queries。为何得到format
的原因是您的sql语句只有一列却有多个值,例如Operand should contain 1 column(s)
。
column1 = (a, b, c, d, e, f)