V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
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 · Dec 1, 2022 · 2294 views
    This topic created in 1244 days ago, the information mentioned may be changed or developed.
    软件版本:
    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 replies    2022-12-01 14:51:41 +08:00
    VZEXEZVzzz
        1
    VZEXEZVzzz  
       Dec 1, 2022 via iPhone
    MySQL 方面,支持字段设置为 JSON 类型
    Python 方面,找个 ORM 框架
    Trim21
        2
    Trim21  
       Dec 1, 2022 via Android
    让 pymysql 替你处理参数。
    loolac
        3
    loolac  
       Dec 1, 2022
    首先,v = {['v' : 'v']},python3 不认识;其次,打印出你的 sql 来,一看就知道问题所在了。

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

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

    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5010 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 222ms · UTC 09:50 · PVG 17:50 · LAX 02:50 · JFK 05:50
    ♥ Do have faith in what you're doing.