任务描述:
需要将python的json字符串存到数据库中,还要保证读取出来后,能解析成字典,中间不会发生任何转义或者改变。
而对于pickle生成的序列化对象,操作过程是一样的。
使用到的python库有 json, MySQLdb
要点1:
我们要保证,存储格式json的类型是BLOB类型的
1 | `json` blob NOT NULL COMMENT 'json', |
要点2:
使用’’包裹此字段,format成insert语句,我没试过不包裹的后果是啥,一般而言字符串都是需要引号包裹的,反正我包起来是没问题的。
1 | tsql = "INSERT INTO xxx(`json`, ...)VALUES('{json}', ....)" |
要点3:
要使用MySQLdb.escape_string函数,来对json字符串进行escape
1 | sql = tsql.format(json=MySQLdb.escape_string(json), ....) |
要点4:
查询出来的结果使用json.loads()就ok了。
1 | for .. , data in cursor.fetchall(): |