2.Python 脚本将json数据转成SQL插入数据库

SQL查询:SELECT id,NAME,LOCAL,mobile,CreateTime FROM db1.s1;

第一部分:SQL数据--->json数据

--------脚本内容-------sqltojson.py-------------------

#!/usr/bin/env python
#-*- coding: utf8 -*-

import MySQLdb
import json

# 定义查询SQL语句
sql = "SELECT id,NAME,LOCAL,mobile,CreateTime FROM db1.s1;"

# 设置列的别名或者直接用表字段名:(下面的sql含有别名)

# sql="SELECT s.id AS 1_id,s.name AS 2_na,s.local AS 3_lo,s.mobile AS 4_mo,s.CreateTime AS 5_ct FROM db1.s1 s;"


# 定义连接MySQL的登录信息(此处以字典形式)
Loginfo = {'USER':'admin', 'PSWD':'admin', 'HOST':'10.10.60.108', 'PORT':4001}


# Python 连接MySQL
conn=MySQLdb.connect(host=Loginfo['HOST'],user=Loginfo['USER'],passwd=Loginfo['PSWD'],port=Loginfo['PORT'],charset='utf8')
cur=conn.cursor()
cur.execute(sql)                        # 执行SQL查询
data = cur.fetchall()                   # 查询结果给data。如果执行:print data 显示结果:((第一行内容),(第二行内容),(第三行内容),(第四行内容))
fields = cur.description               # 获取查询结果中列的字段名,如果查询SQL中使用别名,此处显示别名。
cur.close()
conn.close()

# Main
column_list = []                        # 定义字段名的列表
for i in fields:
column_list.append(i[0])    # 提取字段名,追加到列表中
#print column_list          # 列表显示结果:['id', 'NAME', 'LOCAL', 'mobile', 'CreateTime']

with open('/data/scripts/logdb/json.txt','w+') as f:  # 打开输出结果文件
for row in data:                   # 一次循环,row代表一行,row以元组的形式显示。
result = {}                   # 定义Python 字典
result[column_list[0]] = row[0]          # 将row中的每个元素,追加到字典中。
result[column_list[1]] = str(row[1])       # Python字段格式 和json字段格式转换
result[column_list[2]] = str(row[2])
result[column_list[3]] = row[3]
result[column_list[4]] = str(row[4])
jsondata=json.dumps(result,ensure_ascii=False) # Python的dict --转换成----> json的object
f.write(jsondata + '\n')             # 写入文件
f.close()

------脚本完结---------------------------

json文件内容:

------显示结果---------------------------

注意:最后输出结果,列的顺序是随机的。

如果想要顺序输出:1.字段起别名,比如:1_xx,2_xx,3_xx.....然后在在json.dumps中利用:sort_keys=True排序,结果就顺序输出。

>>> print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)

{"a": 0, "b": 0, "c": 0}

第二部分:json格式--->sql语句

------脚本内容------jsontosql.py--------------

#!/usr/bin/env python
#-*- coding: utf8 -*-

import MySQLdb
import json

datalist = []                      # python 列表
with open('/data/scripts/logdb/json.txt','r') as f:
for line in f:                    # 读取json文件中的行(也就是json的object)
datalist.append(json. loads(line)) # 将json的object转成 Python的dict,追加到Python 列表中, 结果都是unicode格式:[{},{},{},{},{}]
for dict in datalist:
print dict                     # 打印显示 转换后的结果

for dict in datalist:
dict[u'LOCAL'] = dict[u'LOCAL'].replace('\r\n','\\r\\n').replace("'s","\\'s")  # 将字段中的特殊:回车换行以及's 转换,方便形成sql语句
sql = "insert into db1.s1 (mobile,NAME,LOCAL,CreateTime,id) values('%s','%s','%s','%s','%s');" % (dict[u'mobile'],dict[u'NAME'],dict[u'LOCAL'],str(dict[u'CreateTime']),dict[u'id'])
print sql

-----脚本结果------

-------------------

SQL数据--->json数据

#!/usr/bin/env python
#-*- coding: utf8 -*-
import MySQLdb
import json
# 定义查询SQL语句
sql = "SELECT id,NAME,LOCAL,mobile,CreateTime FROM db1.s1;"
# 设置列的别名或者直接用表字段名:(下面的sql含有别名)
# sql="SELECT s.id AS 1_id,s.name AS 2_na,s.local AS 3_lo,s.mobile AS 4_mo,s.CreateTime AS 5_ct FROM db1.s1 s;"
# 定义连接MySQL的登录信息(此处以字典形式)
Loginfo = {'USER':'admin', 'PSWD':'admin', 'HOST':'10.10.60.108', 'PORT':4001}
# Python 连接MySQL
conn=MySQLdb.connect(host=Loginfo['HOST'],user=Loginfo['USER'],passwd=Loginfo['PSWD'],port=Loginfo['PORT'],charset='utf8')
cur=conn.cursor()
cur.execute(sql)                        # 执行SQL查询
data = cur.fetchall()                   # 查询结果给data。如果执行:print data 显示结果:((第一行内容),(第二行内容),(第三行内容),(第四行内容))
fields = cur.description               # 获取查询结果中列的字段名,如果查询SQL中使用别名,此处显示别名。       
cur.close()
conn.close()
# Main 
column_list = []                        # 定义字段名的列表
for i in fields:
    column_list.append(i[0])    # 提取字段名,追加到列表中
#print column_list          # 列表显示结果:['id', 'NAME', 'LOCAL', 'mobile', 'CreateTime']
with open('/data/scripts/logdb/json.txt','w+') as f:  # 打开输出结果文件
    for row in data:                   # 一次循环,row代表一行,row以元组的形式显示。
        result = {}                   # 定义Python 字典
        result[column_list[0]] = row[0]          # 将row中的每个元素,追加到字典中。 
        result[column_list[1]] = str(row[1])       # Python字段格式 和json字段格式转换
        result[column_list[2]] = str(row[2]) 
        result[column_list[3]] = row[3]
        result[column_list[4]] = str(row[4])
        jsondata=json.dumps(result,ensure_ascii=False) # Python的dict --转换成----> json的object
        f.write(jsondata + '\n')             # 写入文件
f.close()         

注意:最后输出结果,列的顺序是随机的。

如果想要顺序输出:1.字段起别名,比如:1_xx,2_xx,3_xx.....然后在在json.dumps中利用:sort_keys=True排序,结果就顺序输出。

print json.dumps({"c": 0, "b": 0, "a": 0}, sort_keys=True)

{"a": 0, "b": 0, "c": 0}

json格式--->sql语句

#!/usr/bin/env python
#-*- coding: utf8 -*-
import MySQLdb
import json
datalist = []                      # python 列表
with open('/data/scripts/logdb/json.txt','r') as f:
    for line in f:                    # 读取json文件中的行(也就是json的object)   
        datalist.append(json.loads(line))        # 将json的object转成 Python的dict,追加到Python 列表中, 结果都是unicode格式:[{},{},{},{},{}] 
for dict in datalist:
    print dict                     # 打印显示 转换后的结果
for dict in datalist:
    dict[u'LOCAL'] = dict[u'LOCAL'].replace('\r\n','\\r\\n').replace("'s","\\'s")  # 将字段中的特殊:回车换行以及's 转换,方便形成sql语句
    sql = "insert into db1.s1 (mobile,NAME,LOCAL,CreateTime,id) values('%s','%s','%s','%s','%s');" % (dict[u'mobile'],dict[u'NAME'],dict[u'LOCAL'],str(dict[u'CreateTime']),dict[u'id'])
    print sql
Python mysql表数据和json格式的相互转换功能:  1.Python 脚本将mysql表数据转换成json格式  2.Python 脚本将json数据转成SQL插入数据库表数据:SQL查询:SELECT id,NAME,LOCAL,mobile,CreateTime FROM db1.s1;第一部分:SQL数据--->json数据---...
MonogDBMySQL数据转换器 此转换器从给定的链接获取JSON数据,并将该JSON数据转换为localhost中MySQL数据库。 MySQL Python3 PyMySQL的 在config.ini文件中输入MySQL凭据。 运行json_to_mysql.py并输入要使用的数据库名称或创建数据库。 这个怎么运作 get_data.py 从代码中的给定链接获取json格式数据。 您可以在get_data.py中输入链接。 create_mysql_tables.py 该文件包含执行不同SQL查询(例如创建数据库,和插入数据)的不同功能。 通常,这是json_to_mysql.py使用的实用程序文件 json_to_mysql.py 这是主/驱动程序文件。 该文件从get_data.py中获取json格式数据,然后将其保存到MySQL数据库中。
由于产品运营部需要采用第三方个推平台,来推送消息。如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql数据转换json数据,直接复制即可。 本文将涉及到如何使用Python访问Mysql数据库及读取获取数据(前提需要安装MySQLdb第三方库哦),以及如何将数据转换json数据,最后保存成文件输出。 代码如下:注释比较详细了。 import json,MySQLdb def TableToJson(): #1-7:如何使用python DB AP
在做一个自动打卡的玩意。登录会得到那个平台一系列的信息。我又不想专门修改、增加数据库字段来存放,所有打算直接将返回的JSON数据保存到一个MySQL字段中。 内容肯定不能直接放,考虑下比如数据注入的问题,对吧,容易出问题,所有我是打算将JSON数据为base64编码的格式。 先写一个专门的编码工具函数 def Base64_encode(s): res = str(base6... 导入pymysql模块: import pymysql 创建连接对象:conn = pymysql.connect(host, user, password, database) 创建游标对象:cursor = conn.cursor() 使用cursor.execute()方法执行sql语句 使用cursor.executemany... 一、实现效果 json数据移前 {“rejectedOrderType”:2,“productCode”:null,“time1”:null,“time2”:null} 这种格式无法直接存入数据义后类似于: "data={\"pageIndex\":1,\"pageSize\":10,.
JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 MySQL 8.0版本中增加了对JSON类型的索引支持。可以使用CREATE INDEX语句创建JSON类型的索引,提高JSON类型数据的查询效率。 存储JSON文档所需的空间与存储LONGBLOB或LONGTEXT所需的空间大致相同。 在MySQL 8.0.13之前,JSON列不能有非空的默认值。 JSON 类型比较适合存储一些列不固定、修改较少
mysql> CREATE INDEX idx1 ON user (card_pay_data(10)); ERROR 3152 (42000): JSON column 'card_pay_data' cannot be used in key specification. 2.text类型 答案是可以的,但是需要指定长度 mysql> CREATE INDEX idx2 ON user (tests); ERROR
你可以使用Python中的`mysql.connector`库来连接MySQL数据库,并使用`json`模块将提取的数据转换JSON格式。以下是一个简单的示例代码: ```python import mysql.connector import json # 连接到MySQL数据库 cnx = mysql.connector.connect(user='your_user', password='your_password', host='your_host', database='your_database') # 创建游标对象 cursor = cnx.cursor() # 执行SQL查询 query = "SELECT * FROM your_table" cursor.execute(query) # 获取查询结果 rows = cursor.fetchall() # 关闭游标和数据库连接 cursor.close() cnx.close() # 将查询结果转换JSON格式 data = [] for row in rows: # 将每行数据转换为字典格式 row_data = dict(zip(cursor.column_names, row)) data.append(row_data) # 将数据保存为JSON文件 with open('data.json', 'w') as f: json.dump(data, f) 在上述代码中,你需要替换`your_user`、`your_password`、`your_host`、`your_database`和`your_table`为你自己的数据库信息。执行完代码后,你将得到一个名为`data.json`的JSON文件,其中包含了从数据库中提取的数据