Python解析Json文件,写入到mysql

import json
import pymysql

def prem(db):
    cursor = db.cursor()
    cursor.execute("SELECT VERSION()")
    data = cursor.fetchone()
    print("Database version : %s " % data)  # 结果表明已经连接成功
    cursor.execute("DROP TABLE IF EXISTS ***")  # 习惯性
    sql = """CREATE TABLE review (
             ** VARCHAR(100)"""
    cursor.execute(sql)  # 根据需要创建一个表格


def reviewdata_insert(db,dir_name,tablename,tup):

    with open(dir_name,'r', encoding='utf-8') as f:
        i = 0
        while True:
            i += 1
            print(u'正在载入第%s行......' % i)
            #try:
            lines = f.readline()
            if len(lines) > 0:
                review_text = json.loads(lines)
            else:
                break
            result = []
            result.append(([review_text[i] for i in tup]))
            print(result)
            mid = ""
            per = ""
            for field in tup:
                mid += field+","
                per += "%s,"
            print(mid[:-1])
            print(per[:-1])
            inesrt_re =  "insert into {0}".format(tablename)+"("+mid[:-1]+") values (" + per[:-1] + ")"
            print(inesrt_re)
            cursor = db.cursor()
            cursor.executemany(inesrt_re, result)
            db.commit()
            # except Exception as e:
            #     db.rollback()
            #     print(str(e))
            #     break


if __name__ == "__main__":  # 起到一个初始化或者调用函数的作用
    db = pymysql.connect("localhost", "root", "root", "sobot_db", charset='utf8')
    cursor = db.cursor()
    #prem(db)
    tablename = "rpt_stafflogin_log"
    json_name = 'test.json'
    tup = ['logType', 'companyId', 'datetime', 'loginLogType','source','operation','staffId']
    reviewdata_insert(db,json_name,tablename,tup)
    cursor.close()

测试数据
{“logType”:2,“companyId”:“51198d62b6574403a0b7e85d72d31b78”,“datetime”:1557804551790,“loginLogType”:0,“source”:0,“operation”:2,“staffId”:“1ebcc059b3ca478aaecde4b5e9fca9df”}
{“logType”:2,“companyId”:“51198d62b6574403a0b7e85d72d31b78”,“datetime”:1557806744163,“loginLogType”:0,“source”:0,“operation”:0,“staffId”:“efef7570fa9b4021890d815144776a99”}
{“logType”:2,“companyId”:“51198d62b6574403a0b7e85d72d31b78”,“datetime”:1558767573813,“loginLogType”:0,“source”:0,“operation”:6,“staffId”:“73177bcddbf047f596bc9a6e6574abc4”}
{“logType”:2,“companyId”:“51198d62b6574403a0b7e85d72d31b78”,“datetime”:1559361115531,“loginLogType”:0,“source”:0,“operation”:0,“staffId”:“c107d24efccc4096ae0a37eba093bf9a”}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值