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 ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
Jun 10 Python
python查询mysql中文乱码问题
Nov 09 Python
Python自动连接ssh的方法
Mar 07 Python
Python模块WSGI使用详解
Feb 02 Python
Python网络编程之TCP与UDP协议套接字用法示例
Feb 02 Python
python3 实现一行输入,空格隔开的示例
Nov 14 Python
python hashlib加密实现代码
Oct 17 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
Django基于客户端下载文件实现方法
Apr 21 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
没编程基础可以学python吗
Jun 17 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
FirePHP 推荐一款PHP调试工具
2011/04/23 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
php操作SVN版本服务器类代码
2011/11/27 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
PHP伪静态Rewrite设置之APACHE篇
2014/07/30 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
javascript 二维数组的实现与应用
2010/03/16 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
JS实现间歇滚动的运动效果实例
2016/12/22 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
webpack4实现不同的导出类型
2019/04/09 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
Python入门必须知道的11个知识点
2018/03/21 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
2018/12/28 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
FitFlop澳大利亚官网:英国符合人体工学的鞋类品牌
2017/06/05 全球购物
失业者真诚求职信范文
2013/12/25 职场文书
最新茶叶店创业计划书
2014/01/14 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
2016年寒假生活小结
2015/10/10 职场文书
Python 如何实现文件自动去重
2021/06/02 Python
Java基础之线程锁相关知识总结
2021/06/30 Java/Android