Python制作数据导入导出工具

 更新时间:2015年07月31日 14:57:44   投稿:hebedich  
正好最近在学习python,于是打算用python实现了数据导入导出工具,由于是新手,所以写的有些不完善的地方还请见谅

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使用chardet判断字符编码

    Python使用chardet判断字符编码

    这篇文章主要介绍了Python使用chardet判断字符编码的方法,较为详细的分析了Python中chardet的功能、安装及使用技巧,需要的朋友可以参考下
    2015-05-05
  • Django1.11自带分页器paginator的使用方法

    Django1.11自带分页器paginator的使用方法

    这篇文章主要为大家详细介绍了Django1.11自带分页器Django的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • pytorch中torch.max和Tensor.view函数用法详解

    pytorch中torch.max和Tensor.view函数用法详解

    今天小编就为大家分享一篇pytorch中torch.max和Tensor.view函数用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python3.6.x中内置函数总结及讲解

    Python3.6.x中内置函数总结及讲解

    今天小编就为大家分享一篇关于Python3.6.x中内置函数总结及讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • python 利用turtle模块画出没有角的方格

    python 利用turtle模块画出没有角的方格

    今天小编就为大家分享一篇python 利用turtle模块画出没有角的方格,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python绘图时,坐标轴负号显示不出来的解决

    python绘图时,坐标轴负号显示不出来的解决

    这篇文章主要介绍了python绘图时,坐标轴负号显示不出来的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python帮你微信头像任意添加装饰别再@微信官方了

    Python帮你微信头像任意添加装饰别再@微信官方了

    昨天朋友圈刷爆了@微信官方的梗,从起初的为头像添加国旗,到最后的各种Book思议的需求…而我呢?下面跟随小编一起学习Python帮你微信头像任意添加装饰别再@微信官方了,感兴趣的朋友一起看看吧
    2019-09-09
  • 使用Python爬取网页中隐藏的div内容

    使用Python爬取网页中隐藏的div内容

    在这个信息爆炸的时代,互联网上的数据无时无刻不在增长,许多网页为了提升用户体验或保护数据,会将部分内容默认隐藏起来,只有在特定条件下才会显示,所以本文将详细介绍如何使用Python爬取这些隐藏的div内容,需要的朋友可以参考下
    2025-03-03
  • Python实现自动生成请假条

    Python实现自动生成请假条

    这篇文章主要为大家详细介绍了如何实现用Python来批量生成请假条,这回既学了东西又做了事情,两不误!感兴趣的小伙伴可以跟随小编一起学习一下
    2022-12-12
  • 基于PyQt5制作一个截图翻译工具

    基于PyQt5制作一个截图翻译工具

    这篇文章主要为大家介绍了如何利用PyQt5制作一个简单的截图翻译工具,具有截图功能、翻译功能和文字识别OCR,需要的可以参考一下
    2022-05-05

最新评论