json格式如何存入mysql?存入方法介绍

JSON是一种轻量级的数据交换格式,在我们获取到的json数据之后,需要将数据存入MySQL数据库中,以便后期开发使用,那json格式如何存入mysql?下面来我们就来给大家讲解一下。

1.实战存储json数据到MySQL中

(1)数据存储

1.创建能存储json数据类型的数据库表

mysql > create table jsondata -
    > (
        - > id int(6) auto_increment primary key
        , - > data blob(1024) -
        > );
Query OK, 0 rows affected(0.25 sec)
-> data blob(1024)
mysql > show tables; +
-- -- -- -- -- -- -- -- -- - +
|
Tables_in_spyinux |
    + -- -- -- -- -- -- -- -- -- - +
    |
    jsondata |
    |
    test |
    + -- -- -- -- -- -- -- -- -- - +
    2 rows in 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 in set(0.00 sec)

2.使用Python生成json数据类型

>>>
import json
    >>>
    d = {
        'name': 'xpleaf'
    } >>>
    type(d) <
    type 'dict' >
    >>>
    d_json = json.dumps(d) >>>
    d_json '{"name": "xpleaf"}' >>>
    type(d_json) <
    type 'str' >

3.使用MySQLdb连接MySQL数据库

>>>
import MySQLdb
    >>>
    conn = m.connect(host = 'localhost', port = 3306, user = 'root', passwd = '123456', db = 'spyinux') >>> cur = conn.cursor()

4.写原生sql语句

>>> tsql = "insert into jsondata(data) values('{json}')";

5.使用MySQLdb方法转义json数据--[重点]

>>> sql = tsql.format(json = MySQLdb.escape_string(d_json)); >>>
sql
    'insert into jsondata(data) values(\'{\\"name\\": \\"xpleaf\\"}\')'

6.执行sql语句

>>> cur.execute(sql)
1 L
    >>>
    cur.execute(sql)
1 L

(2)数据查询

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

1.先在MySQL中查询存储的数据

mysql > select * from jsondata; +
-- -- + -- -- -- -- -- -- -- -- -- -- +
|
id | data |
    + -- -- + -- -- -- -- -- -- -- -- -- -- +
    |
    1 |
    {
        "name": "xpleaf"
    } |
    + -- -- + -- -- -- -- -- -- -- -- -- -- +
    1 row in set(0.00 sec)

2.在Python交互器中查询数据

>>> cur.execute('select * from jsondata');
1 L
    >>>
    mydata = cur.fetchall() >>>
    mydata((1 L, '{"name": "xpleaf"}'), ) >>>
    mydata = mydata[0][1] >>>
    mydata '{"name": "xpleaf"}' >>>
    type(mydata) <
    type 'str' >

3.使用json.loads解析json数据

>>> mydata = json.loads(mydata) >>>
    mydata
    {
        u 'name': u 'xpleaf'
    } >>>
    type(mydata) <
    type 'dict' >
    >>>
    mydata['name']
u 'xpleaf' >>>
    mydata.get('name')
u 'xpleaf'

可以看到,最开始我们使用Pythonn创建了一个字典类型的数据,之后将其转换为json数据类型,以便于存入MySQL中,在这个过程中需要使用MySQL.escape_string方法来对json数据进行转义,最后查询数据时,我们使用json.loads方法来解析json数据,从而得到我们最开始存储的Python字典类型数据。

按照以上的方法就可以将json数据类型存入MySQL中,不过json不是一般的文本数据,所以我们在存入的时候一定要注意一下!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

ajax如何解决跨域问题?前端ajax跨域解决方案

redis客户端工具如何安装?redis客户端工具安装教程

java程序员需要掌握的知识有哪些?如何提高java技能?