使用Python向MySQL数据库中存入json类型数据

  


,,,,因为出于个人项目的需要,获取到的数据都是json类型的,并且都要存入MySQL数据库中,因为json类型数据不像一般的文本数据,所以在存入MySQL时需要注意的问题很多。

,,,,在网上找了很多方法,整理了一下比较实用可靠的,总结下来就是下面的过程:

<李>

<李>

<李>

,,,,下面就来实战一下,实际上,在我的需求中,我需要将Python中的字典存入MySQL,所以只能先将其转换为json来处理。


<人力资源/>




<李>

mysql> create  table  jsondata   ,,,,,(   ,,,,,id  int (6), auto_increment  primary 键,   ,,,,,data 团(1024)   ,,,,,);   Query 好吧,,0,rows  affected (0.25,秒)      mysql>, show 表;   +-------------------+   | |,Tables_in_spyinux    +-------------------+   |,jsondata ,,,,,,,, |   |,test ,,,,,,,,,,,, |   +-------------------+   2,rows  set 拷贝;(0.00,sec)      mysql>, describe  jsondata;   + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | |,Field  Type ,, |, Null  |, Key  |, Default  |, Extra ,,,,,,,, |   + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |,id ,,, |, int (6), |, NO ,, |, PRI  |, NULL ,,, |, auto_increment  |   | |,data 还以为;blob ,, |, YES , |,,,,, |, NULL ,,, |,,,,,,,,,,,,,,, |   + - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +   2,rows  set 拷贝;(0.00,sec) <李>

在祝辞祝辞import  json   在祝辞祝辞,d =,{“名称”:,“xpleaf”}   在祝辞祝辞,类型(d)   & lt; type  dict的祝辞   在祝辞祝辞,d_json =, json.dumps (d)   在祝辞祝辞d_json   {“名称”:“xpleaf”}”   在祝辞祝辞,类型(d_json)   & lt; type  str的祝辞 <李>

在祝辞祝辞import  MySQLdb   祝辞祝辞祝辞,conn =, m.connect(主机=' localhost ',港口=3306,用户=?,passwd=?23456’, db=spyinux)在祝辞祝辞,cur =, conn.cursor () <李>

在祝辞祝辞,tsql =,“insert  into  jsondata(数据),值(“{json}”)”, <李>

在祝辞祝辞,sql =, tsql.format (json=MySQLdb.escape_string (d_json));   在祝辞祝辞sql   “insert  into  jsondata(数据),值(\ ' {\ \“\ \”:\ \ " xpleaf \ \ "} \ ')” <李>

在祝辞祝辞,cur.execute (sql)   1 l   在祝辞祝辞,cur.execute (sql)   1 l



,,,,上面的操作完成之后,我们已经成功将json的数据存取到MySQL中,关键是能不能将该数据取出来,并且最后还原成Python的字典类型类型。


<李>

mysql>, select  *,得到jsondata;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - +   | |,id  data ,,,,,,,,,,,,, |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - +   |,,1,|,{“名称”:,“xpleaf”}, |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - +   1,row  set 拷贝;(0.00,sec) <李>

在祝辞祝辞,cur.execute (“select  *,得到jsondata”);   1 l   在祝辞祝辞,mydata =, cur.fetchall ()   在祝辞祝辞mydata   ((1 l,“{“名称”:,“xpleaf”}”),)   在祝辞祝辞,mydata =, mydata [0] [1]   在祝辞祝辞mydata   {“名称”:“xpleaf”}”   在祝辞祝辞,类型(mydata)   & lt; type  str的祝辞 <李>

在祝辞祝辞,mydata =, json.loads (mydata)   在祝辞祝辞mydata   {u 'name’: u 'xpleaf '}   在祝辞祝辞,类型(mydata)   & lt; type  dict的祝辞   在祝辞祝辞,mydata(“名字”)   u 'xpleaf '   在祝辞祝辞,mydata.get(“名字”)   null

使用Python向MySQL数据库中存入json类型数据