请问如何通过 Python3 向 MySQL 写入 JSON 数据

2022-12-01 04:01:32 +08:00
 websql
软件版本:
Python 3.10
MySQL 8.0

Python3 字典
v = {['v' : 'v']}

转换为 json 字符串
vv = json.dumps(v)

构造 sql 语句
sql = "INSERT INTO table_name (column_name) VALUES (%s)" % (vv)
写入 MySQL
db.query(sql)

报错信息:
"pymysql.err.ProgrammingError: (1064, '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 \'p1": [.................."
我理解应该是 json 数据没有没有转义造成的。
于是尝试
vv = ‘"""’ + vv ‘"""’
报同样的错误。

请问各位大佬有什么解决办法能直接将 json 数据写入 MySQL 吗?
1635 次点击
所在节点    MySQL
6 条回复
VZEXEZVzzz
2022-12-01 04:28:09 +08:00
MySQL 方面,支持字段设置为 JSON 类型
Python 方面,找个 ORM 框架
Trim21
2022-12-01 04:31:04 +08:00
让 pymysql 替你处理参数。
loolac
2022-12-01 08:41:36 +08:00
首先,v = {['v' : 'v']},python3 不认识;其次,打印出你的 sql 来,一看就知道问题所在了。

INSERT INTO table_name (column_name) VALUES ({"V":"V"})
ttvast
2022-12-01 11:37:03 +08:00
sql = "INSERT INTO table_name (column_name) VALUES (%s)"
cursor.execute(sql,vv)
ttvast
2022-12-01 11:38:27 +08:00
@ttvast (vv,)
goodryb
2022-12-01 14:51:41 +08:00
Python3 字典
v = {['v' : 'v']}

字典是这样的吗,key 和 value 分别是啥

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/899219

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX