zoukankan      html  css  js  c++  java
  • json2mysql

    import json
    import psycopg2
    import sys
    
    conn = psycopg2.connect(dbname='dev', host='127.0.0.1',
                            port='5439', user='master', password='123456')
    cur = conn.cursor()
    
    column_names = None
    
    
    def execute(sql):
        cur.execute(sql)
        conn.commit()
    
    
    def build_value(item):
        global column_names
        column_names = []
    
        fields = []
        if tablename.startswith('sold_'):
            keylist = ['soldUrl', 'country', 'category0', 'itemNumber', 'price', 'quantity', 'Date_of_Purchase', 'ts',
                       'ts_string']
        else:
            keylist = None
        for key in sorted(item.keys()) if not keylist else keylist:
            field = item.get(key, None)
            if isinstance(field, str):
                field = field.replace("'", "''").replace("\", "")
    
            column_names.append(key)
    
            if key in ['page', 'index']:
                fields.append(str(field))
            else:
                fields.append("'{}'".format(field))
    
        return '({})'.format(', '.join(fields))
    
    
    if __name__ == '__main__':
    
        data_file = sys.argv[1]
        tablename = sys.argv[2]
    
        values = []
        for line in open(data_file):
            item = json.loads(line)
    
            values.append(build_value(item))
    
            if len(values) == 10000:
                sql = 'insert into {}({}) values {};'.format(tablename, ', '.join(column_names), ', '.join(values))
                execute(sql)
    
                values.clear()
    
        execute('insert into {}({}) values {};'.format(tablename, ', '.join(column_names), ', '.join(values)))
  • 相关阅读:
    使用winsw将jar包注册成windows服务
    windows 下redis在后台运行
    nDPI的安装和使用
    Passive DNS安装使用
    ffmpeg-join
    Subtitle-ass-srt
    spring cloud项目05:中心化配置-P03-高可用
    spring cloud项目04:中心化配置-P02
    spring cloud项目03:高可用注册中心
    spring boot项目07:日志
  • 原文地址:https://www.cnblogs.com/wanghzh/p/9437239.html
Copyright © 2011-2022 走看看