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("处理完成")
复制代码

 

posted @   wujf  阅读(1214)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示