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. restfull规范、DRF视图和路由

    一.restfull规范的简单介绍 1.介绍 REST:表述性状态转移,是一种web交互方案 资源:在web中只要有被引用的必要都是资源 URI: URI 统一资源标识符 URL 统一资源定位符 统一 ...

  2. windows下零基础gulp构建

    在学习前,先谈谈大致使用gulp的步骤,给读者以初步的认识.首先当然是安装nodejs,通过nodejs的npm全局安装和项目安装gulp,其次在项目里安装所需要的gulp插件,然后新建gulp的配置 ...

  3. photoshop编辑pdf文件

    对于PDF文件透明背景的问题 PDF文件背景是透明的,如何使其变成白色 怎样通过photoshop打开多页PDF,编辑后仍保存为多页 注意shift全选,"页面选项"处的'裁剪到' ...

  4. 怎样在ISE14.7中固化FLASH文件

    前言 当工程开发完成后,bit文件类型掉电后会消失,而此时采用FLASH固化就很重要了. 软件版本:ISE14.7 流程 1.对生成FLASH文件进行设置:配置速率为33,选择66貌似配置失败,中庸之 ...

  5. phpStudy The requested URL /web/index.php was not found on this server

    1.原因 phpStudy的httpd-conf 与 vhosts-ini 的目录设置错了 2.解决 分别打开httpd-conf 与 vhosts-ini 2个文件,搜索WWW,把里面的路径改成你的 ...

  6. WC2019滚粗记

    什么?你问WC2019滚粗记在哪里? 抱歉,这篇文章鸽了. 原因? 引用神仙\(yyb\)的话. 恩,想了想还是更一点吧. Day 0 签到海星,我写了个大大的\(Cgod\)有没有人看见啊,然后被广 ...

  7. Redmine简易安装与系统优化

    安装版本为bitnami-redmine-2.6.5-0 ,用的Bitnami的一键安装包 . 下载地址https://bitnami.com/stack/redmine/installer 简要安装 ...

  8. windows下用pycharm安装tensorflow简易教程

    https://blog.csdn.net/heros_never_die/article/details/79760616 最近开始学习深度学习的相关知识,准备实战一下,看了一些关于tensorfl ...

  9. Vue(二)简单入门

    根据上一节搭建的hello-world工程(包含Router),用Webstorm打开,我们先运行一下工程. 界面如下 .. 我将在About里面介绍一下Vue的相关内容. 打开About.vue,修 ...

  10. WinForm文件说明

    以上位置,双击即可. 界面可以通过拖动控件,也可以通过背后的界面代码去布局. 如果删除了事件代码,界面可能报错,因为界面代码中有未删除的残余(波浪线提示处代码,直接删除即可). 对于多个窗体,Prog ...