python字典insert_将INSERT TO sql与字典值一起使用

我使用的是python3.6mysql 8和mysql Python connector 8

我试图插入下表| Recipes_id| title| Prep_time| servings | Summarize| Very_healthy| Cuisine| img| source_url|

+-----------+------+----------+---------+----------+--------------+--------+----+-----------+

使用一个对键命名不同的字典。

例如字典的一个示例对象:

^{pr2}$

这里,id键与表中的recipe_id列名不同。

MySQL查询如下:Recipes_INSERT_SQL = (

"INSERT INTO recipes "

"(Recipes_id, title, Prep_time, servings, Summarize, Very_healthy, Cuisine, Img, Source_url) "

"VALUES ( %(id)s, %(title)s, %(prep_time)s, %(servings)s, %(summarize)s, %(very_healthy)s, %(cuisine)s, %(img)s, %(source_url)s )"

)

cursor.execute(Recipes_INSERT_SQL, recipes_data)

注意字典键与列名不同

但错误是:ProgrammingError(1064, "1064 (42000): You have an error

in your SQL syntax; check the manual that corresponds to your

MySQL server version for the right syntax to use near '%(id)s,

%(title)s, %(prep_time)s, %(serving)s, %(summarize)s, %(very_healthy)s, ' at line 1",

'42000')

如您所见,引擎甚至没有解析(标题)和其他名称。

我是否遗漏了什么?mysql 8的占位符约定为%(name)s,如文档中所述。

以下是sql层次结构和配方表:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值