• python实现通用json导入到mysql


    import json
    from Db import Db
    
    db = Db()
    
    '''
    参考配置文件
    {
        "file": "test.json",    
        "path": "data",
        "table": "tk_bill",
        "comitcount": 50,
        "map": {
            "trade_id": "trade_id",
            "tk_status": "tk_status",
            "item_title": "item_title",
            "alipay_total_price": "alipay_total_price",
            "tk_paid_time": "tk_paid_time",
            "pub_share_pre_fee": "pub_share_pre_fee",
            "subsidy_fee": "subsidy_fee",
            "tk_settletime": "tk_settletime"
        }
    }
    '''
    
    
    def loadJsonFromFile(file):
        '''
        加载配置
        :return:
        '''
        with open(file) as f:
            return json.load(f)
    
    
    def getData(jsonObj, path):
        return jsonObj[path]
    
    
    if __name__ == '__main__':
        importConfig = loadJsonFromFile("jsonmap.conf")
        # 获取要导入的表名
        tableName = importConfig["table"]
        comitcount = importConfig["comitcount"]
        cols = []
        colsidx = []
        for k, v in importConfig["map"].items():
            cols.append(k)
            colsidx.append(v)
        sqlpre = "insert into %s(%s) values " % (tableName, ",".join(cols))
        jsonobj = loadJsonFromFile(importConfig["file"])
        # 获取列表部分
        pathArr = []
        if importConfig["path"] != "":
            pathArr = importConfig["path"].split(".")
            for key in pathArr:
                jsonobj = getData(jsonobj, key)
        vlist = []
        for i, data in enumerate(jsonobj):
            print("处理第%d行" % (i + 1))
            temlist = [];
            for k in colsidx:
                s = "'%s'" % data[k].replace("'", "''")
                temlist.append(s)
            vlist.append("(%s)" % ",".join(temlist))
            if i % comitcount == 0:
                sql = sqlpre + ",".join(vlist)
                db.execSql(sql)
                vlist.clear()
                continue
        if len(vlist) > 0:
            sql = sqlpre + ",".join(vlist)
            db.execSql(sql)
            vlist.clear()
        print("处理完成")
  • 相关阅读:
    理解session
    java ee后台运行原理(Servlet)
    XML:是什么?怎样工作的?可以做什么?将来的发展有会怎样?
    互联网应用与企业级应用的区别
    自我介绍
    补充第一周
    第一周代码(四则运算)
    自我介绍
    程序1:自动生成小学四则运算题目
    初读《构建之法现代软件工程》的5个疑问
  • 原文地址:https://www.cnblogs.com/wujf/p/13055626.html
Copyright © 2020-2023  润新知