Python制作数据导入导出工具


Posted in Python onJuly 31, 2015

python 2.6编写,自己瞎写的,备用

'''
  Export and Import ElasticSearch Data.
  Simple Example At __main__
  @author: wgzh159@163.com
  @note: uncheck consistency of data, please do it by self
'''
 
import json
import os
import sys
import time
import urllib2
 
reload(sys)
sys.setdefaultencoding('utf-8') # @UndefinedVariable
 
class exportEsData():
  size = 10000
  def __init__(self, url,index,type):
    self.url = url+"/"+index+"/"+type+"/_search"
    self.index = index
    self.type = type
  def exportData(self):
    print("export data begin...")
    begin = time.time()
    try:
      os.remove(self.index+"_"+self.type+".json")
    except:
      os.mknod(self.index+"_"+self.type+".json")
    msg = urllib2.urlopen(self.url).read()
    print(msg)
    obj = json.loads(msg)
    num = obj["hits"]["total"]
    start = 0
    end = num/self.size+1
    while(start<end):
      msg = urllib2.urlopen(self.url+"?from="+str(start*self.size)+"&size="+str(self.size)).read()
      self.writeFile(msg)
      start=start+1
    print("export data end!!!\n\t total consuming time:"+str(time.time()-begin)+"s")
  def writeFile(self,msg):
    obj = json.loads(msg)
    vals = obj["hits"]["hits"]
    try:
      f = open(self.index+"_"+self.type+".json","a")
      for val in vals:
        a = json.dumps(val["_source"],ensure_ascii=False)
        f.write(a+"\n")
    finally:
      f.flush()
      f.close()
 
class importEsData():
  def __init__(self,url,index,type):
    self.url = url+"/"+index+"/"+type
    self.index = index
    self.type = type
     
  def importData(self):
    print("import data begin...")
    begin = time.time()
    try:
      f = open(self.index+"_"+self.type+".json","r")
      for line in f:
        self.post(line)
    finally:
      f.close()
    print("import data end!!!\n\t total consuming time:"+str(time.time()-begin)+"s")
  def post(self,data):
    req = urllib2.Request(self.url,data,{"Content-Type":"application/json; charset=UTF-8"})
    urllib2.urlopen(req)
 
if __name__ == '__main__':
  '''
    Export Data
    e.g.
              URL          index    type
    exportEsData("http://10.100.142.60:9200","watchdog","mexception").exportData()
     
    export file name: watchdog_mexception.json
  '''
  #exportEsData("http://10.100.142.60:9200","watchdog","mexception").exportData()
  exportEsData("http://10.100.142.60:9200","watchdog","mexception").exportData()
   
   
  '''
    Import Data
     
    *import file name:watchdog_test.json  (important)
          "_" front part represents the elasticsearch index
          "_" after part represents the elasticsearch type
    e.g.
              URL          index    type
    mportEsData("http://10.100.142.60:9200","watchdog","test").importData()
  '''
  #importEsData("http://10.100.142.60:9200","watchdog","test").importData()
  importEsData("http://10.100.142.60:9200","watchdog","test").importData()

以上所述就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
零基础写python爬虫之抓取糗事百科代码分享
Nov 06 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python中的日期时间处理详解
Nov 17 Python
python实现聚类算法原理
Feb 12 Python
Python3 修改默认环境的方法
Feb 16 Python
python绘制漏斗图步骤详解
Mar 04 Python
Python3实现的反转单链表算法示例
Mar 08 Python
django中forms组件的使用与注意
Jul 08 Python
python模块常用用法实例详解
Oct 17 Python
pymysql模块的操作实例
Dec 17 Python
Python bisect模块原理及常见实例
Jun 17 Python
Elasticsearch 基本查询和组合查询
Apr 19 Python
简单理解Python中的装饰器
Jul 31 #Python
python简单分割文件的方法
Jul 30 #Python
Python读取网页内容的方法
Jul 30 #Python
python查看FTP是否能连接成功的方法
Jul 30 #Python
python如何实现excel数据添加到mongodb
Jul 30 #Python
python学习之第三方包安装方法(两种方法)
Jul 30 #Python
Python实现的Excel文件读写类
Jul 30 #Python
You might like
PHP根据IP地址获取所在城市具体实现
2013/11/27 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
PHP实现的DES加密解密实例代码
2016/04/06 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
javascript 关闭IE6、IE7
2009/06/01 Javascript
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
详解webpack babel的配置
2018/01/09 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
[01:16:01]VGJ.S vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python3中bytes和string之间的互相转换
2017/02/09 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
通过代码实例了解Python异常本质
2020/09/16 Python
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
学习标兵获奖感言
2014/02/20 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
四风自我剖析材料
2014/09/30 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
电影复兴之路观后感
2015/06/02 职场文书