V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
websql
V2EX  ›  MySQL

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

  •  
  •   websql · 120 天前 · 1174 次点击
    这是一个创建于 120 天前的主题,其中的信息可能已经有所发展或是发生改变。
    软件版本:
    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 吗?
    6 条回复    2022-12-01 14:51:41 +08:00
    VZEXEZVzzz
        1
    VZEXEZVzzz  
       120 天前 via iPhone
    MySQL 方面,支持字段设置为 JSON 类型
    Python 方面,找个 ORM 框架
    Trim21
        2
    Trim21  
       120 天前 via Android
    让 pymysql 替你处理参数。
    loolac
        3
    loolac  
       120 天前
    首先,v = {['v' : 'v']},python3 不认识;其次,打印出你的 sql 来,一看就知道问题所在了。

    INSERT INTO table_name (column_name) VALUES ({"V":"V"})
    ttvast
        4
    ttvast  
       120 天前
    sql = "INSERT INTO table_name (column_name) VALUES (%s)"
    cursor.execute(sql,vv)
    ttvast
        5
    ttvast  
       120 天前
    @ttvast (vv,)
    goodryb
        6
    goodryb  
       120 天前
    Python3 字典
    v = {['v' : 'v']}

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

    关于   ·   帮助文档   ·   博客   ·   nftychat   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   1089 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 19:10 · PVG 03:10 · LAX 12:10 · JFK 15:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.