import json
import psycopg2
import sys conn = psycopg2.connect(dbname='dev', host='127.0.0.1',
port='', user='master', password='')
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)))

json2mysql的更多相关文章

随机推荐

  1. 关于sha1加密与md5加密

    1.区别 Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是, ...

  2. edusoho -A5: AppBundle UML

    edusoho -A5:  AppBundle UML

  3. shell实战之日志备份

    util.sh #!/bin/bash - # Read config # kay # Version: 1.0 # // # configuration file path config=${log ...

  4. 状压DP天秀

    状压DP,依靠的是把状态用某种压缩方式表示出来进而DP,大多数时候是二进制状压. 直接看例题吧. 一双木棋     九尾狐吃棉花糖     islands and bridges 愤怒的小鸟   芯片 ...

  5. 越光后端开发——ygapi(3.引入xadmin)

    1.引入xadmin 1.将xadmin文件夹放入extra_apps目录下: 2.在每个app下新建adminx.py 1.apps/users/目录下新建adminx.py: import xad ...

  6. Springboot 3.需求携带参数的get请求

    还是拿来上节讲的代码: package com.course.server; import org.springframework.web.bind.annotation.*; import java ...

  7. linux使用mail发送外部smtp邮件

    linux使用mail发送外部smtp邮件 第一章 说明 参考资料: http://coolnull.com/2614.html linux自带的mail可以实现外部smtp发邮件.不需要本地配置po ...

  8. Gaussian Process for Regression

    python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...

  9. Shell脚本之grep

    1. 过滤空行   grep -v ^$

  10. .net core 多租户框架整理

    一 saaskitAsp.Net Core multi-tenant application Sample using #SaaSKithttps://github.com/saaskit/saask ...