mysql游标json_中“.format()”与“%s”的使用光标.执行()对于mysql JSON字段,使用Pythonmysql.connector,...

本文探讨了使用pythonmysql.connector库将JSON数据存储到MySQL的JSON字段中遇到的问题。作者尝试使用'.format()'或f-string替代传统的'%s'占位符,但在执行插入语句时遇到语法错误。问题集中在是否可以避免在特定情况下使用%s以及为何不能使用.format()方法。文章寻求解决方案并解释两者之间的差异。
摘要由CSDN通过智能技术生成

我的目标是使用mysql.connector库将JSON对象存储到JSON类型的MySQL数据库字段中。在import mysql.connector

import json

jsonData = json.dumps(origin_of_jsonData)

cnx = mysql.connector.connect(**config_defined_elsewhere)

cursor = cnx.cursor()

cursor.execute('CREATE DATABASE dataBase')

cnx.database = 'dataBase'

cursor = cnx.cursor()

cursor.execute('CREATE TABLE table (id_field INT NOT NULL, json_data_field JSON NOT NULL, PRIMARY KEY (id_field))')

现在,下面的代码工作正常,我的问题的焦点是“%s”的使用:

^{pr2}$

我的问题是:当将变量aValue组合成一个字符串时,我非常严格地遵守'...{}'.format(aValue)(或f'...{aValue}')的使用,从而避免使用{}(无论我的原因是什么,我们不在这里讨论它们-但这是我希望尽可能保留它的方式,因此我的问题是)。在

在任何情况下,我都无法创建将jsonData存储到mySql数据库中的东西,使用类似于上述结构的东西,并使用'...{}'.format()(任何形状或形式)而不是{}。例如,我(在许多迭代中)尝试过insert_statement = "INSERT INTO table (id_field, json_data_field) VALUES ({}, {})".format(1, jsonData)

cursor.execute(insert_statement)

但无论我如何转动和扭转它,我总是得到以下错误:ProgrammingError: 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 '[some_content_from_jsonData})]' at line 1

现在我的问题是:

1)是否有方法避免在此处使用我缺少的%s?在

2)如果没有,为什么?是什么让这不可能?是cursor.execute()函数,还是它是一个JSON对象,还是完全不同?难道{}.format()不应该做%s所能做的一切,甚至更多?在

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值