偶遇的Json文件很是复杂
复杂的嵌套结构
但是不仅需要把每个对象解析出来
还还还
要把它们一一导入到mysql数据库中
首先是连接mysql数据库
输入服务器ip地址,3306端口号,用户名和密码,以及希望导入的数据库的名称
可以在数据库中新建表,也可以通过代码直接建表,建表的两行代码只执行一次就可以了
将json文件中的元素与数据库表中的元素分别对应
例如,数据库中的表头为name,json文件中name对应的是{data:{name:{value:DaMoWang}}}
数据对应完成之后
将数据插入到对应的mysql的数据库的表中
具体代码如下:
#python 3.8.5#coding=utf-8import jsonimport pymysqlconn = pymysql.connect( host = '111.111.111.111',#mysql服务器地址 port = 3306,#端口号 user = 'super_damowang',#用户名 passwd = '666666666666666',#密码 db = 'test_damowang',#数据库名称 charset = 'utf8',#连接编码,根据需要填写 )cur = conn.cursor()#创建并返回游标#创建mysql表头sql = "CREATE TABLE test_damowang (name VARCHAR (100),organization VARCHAR (100));"cur.execute(sql)#执行上述sql命令import osfrom os import listdir#单个文件导入f = open(r"C:\test\666.json", "r",encoding='UTF-8')out = f.read()tmp = json.dumps(out)#json.dumps()用于将dict类型的数据转成strtmp = json.loads(out)#json.loads()用于将str类型的数据转成dictname = tmp['data']['name']['value']#左侧为mysql表头数据,右侧为根据json文件中的对象在嵌套结构中的数值导入organization = tmp['data']['organization_country' or 'country']['value']#name = tmp[pymysql.escape_string('data')][pymysql.escape_string('name')][pymysql.escape_string('value')]#organization = tmp[pymysql.escape_string('data')][pymysql.escape_string('organization_country')or pymysql.escape_string('country')][pymysql.escape_string('value')]sql_insert = "insert into test_damowang (name,organization) values (" + "'"+name+"'" +","+ "'"+organization+"'" + ");"cur.execute(sql_insert) conn.commit()conn.close()