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语言实现获取主机名根据端口杀死进程
Mar 31 Python
Windows下python2.7.8安装图文教程
May 26 Python
Python命令行解析模块详解
Feb 01 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
python求平均数、方差、中位数的例子
Aug 22 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
浅析Django中关于session的使用
Dec 30 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
aws 通过boto3 python脚本打pach的实现方法
May 10 Python
详解Python流程控制语句
Oct 28 Python
Python中OpenCV实现简单车牌字符切割
Jun 11 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 调试环境(IIS+PHP+MYSQL)
2007/01/10 PHP
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
PHP开发框架总结收藏
2008/04/24 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
网站上面有这种切换效果
2006/06/26 Javascript
jquery.boxy插件的iframe扩展代码
2010/07/02 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
python3调用百度翻译API实现实时翻译
2018/08/16 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
Python笔记之工厂模式
2019/11/20 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
用html5的canvas画布绘制贝塞尔曲线完整代码
2013/08/14 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
linux面试题参考答案(1)
2016/01/22 面试题
安全检查验收制度
2014/01/12 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
淘宝好评语大全
2014/05/05 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
学校开除通知书
2015/04/25 职场文书
机关干部正风肃纪心得体会
2016/01/15 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
Python机器学习应用之工业蒸汽数据分析篇详解
2022/01/18 Python
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python