【发布时间】:2021-09-11 01:16:23
【问题描述】:
我正在用 Python 编写一个 MySQL 查询,使用 pymysql 将 JSON 数据发送到 MySQL 表。当它发送数据时,会产生以下结果。
| id | data |
+----+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 21 | 0x7B226775696C6473223A207B22383538393137313431303633343031353132223A207B226D656D62657273223A207B22343130373936333038323431303535373436223A207B22706F696E7473223A203137302C2022726166666C65735F776F6E223A20307D7D2C2022726166666C6573223A20307D7D7D |
我用来发送数据的代码如下:
self.data_str = json.dumps(self.data)
sql = "insert into jsondata ( data) values ('" + self.data_str + "') "
mysql.exec_sql(sql)
mysql.close_db()
exec_sql 函数是:
def exec_sql(self, sql):
# sql is insert, delete or update statement
cursor = self.db.cursor()
try:
cursor.execute(sql)
# commit sql to mysql
self.db.commit()
cursor.close()
return True
except:
self.db.rollback()
return False
JSON 数据的示例行是
{"guilds": {"853317141063401512": {"members": {"410846308241055746": {"points": 250, "raffles_won": 0}}, "raffles": 0}}}
我的 SQL 表设置如下:
| Field | Type | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+----------------+
| id | int(6) | NO | PRI | NULL | auto_increment |
| data | blob | YES | | NULL | |
+-------+--------+------+-----+---------+----------------+
【问题讨论】:
-
你认为
blob类型是什么意思?如果你知道它意味着二进制数据,你为什么要在那里存储一个字符串? -
哦哈哈,我不敢相信我完全忽略了这一点。谢谢
标签: python mysql sql json pymysql