json2mysql
- 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的更多相关文章
随机推荐
- 自己实现ArrayList与LinkedList类
ArrayList与LinkedList的底层实现 ArrayList内部由数组实现,LinkedList内部由链表实现. 自己动手实现ArrayList与LinkedList中一些常用方法 Arra ...
- sql中的 IF 条件语句的用法
IF 表达式 IF( expr1 , expr2 , expr3 ) expr1 的值为 TRUE,则返回值为 expr2 expr1 的值为FALSE,则返回值为 expr3 如下: SELECT ...
- 5.15 pymysql 模块
pymysql 模块 安装 pip3 install pymysql 链接,执行sql,关闭(游标) import pymysql user= input('用户名:>>').strip( ...
- scrapy之使用LinkExtractor提取链接
一.概述: 在页面含有少量链接时,使用selector来提取信息就可以,但如果链接特别多时,就需要用LinkExtractor来提取. 二.LinkExtractor构造器的各个参数: 1.allow ...
- NOI真题记录
NOI2001 食物链,拓展域并查集. 炮兵阵地,棋盘状压DP. NOI2002 银河英雄传说,kruskal重构树/带权并查集. 贪吃的九头龙,树形DP. NOI2003 逃学的小孩,树形DP,二次 ...
- js的几大重点
闭包,:作用域(函数创建),上下文环境(函数执行,会销毁) 匿名函数,:没有函数名的函数,function(){} 自执行函数,:立即调用的匿名函数,(function(){})() 原型链,:继承的 ...
- javax.websocket.DeploymentException: Multiple Endpoints may not be deployed to the same path [/websocket/{sid}] : existing endpoint was class com.sanyi.qibaobusiness.framework.webSocket.WebSocketServe
报错: javax.websocket.DeploymentException: Multiple Endpoints may not be deployed to the same path [/w ...
- fstat函数
一.函数原型 #include<sys/stat.h> #include<unistd.h> int fstat(int fildes,struct stat *buf); 返 ...
- CentOS 7 破解root密码
破解root密码必须在本机上进行,如果使用SecureCRT Xshell等远程工具修改是会出错的! A0 哥们儿,忘记密码了,怎么办??? A1.进入启动界面: A2. 按‘e’键进入编辑模式 A ...
- nginx php程序 文件上传大小限制
关于 PHP 程序上传限制 更改 php.ini 配置文件 upload_max_filesize = 5M post_max_size = 16M 通过 nginx 环境限制上传大小: 可以在 ht ...