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 多进程通信模块的简单实现
Feb 20 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
Python多线程和队列操作实例
Jun 21 Python
opencv实现图片模糊和锐化操作
Nov 19 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
python导入pandas具体步骤方法
Jun 23 Python
python爬虫 urllib模块反爬虫机制UA详解
Aug 20 Python
线程安全及Python中的GIL原理分析
Oct 29 Python
python创建ArcGIS shape文件的实现
Dec 06 Python
python如何调用字典的key
May 25 Python
Jupyter Notebook 如何修改字体和大小以及更改字体样式
Jun 03 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开发者事半功倍的十大技巧小结
2010/04/20 PHP
PHP MySQL应用中使用XOR运算加密算法分享
2011/08/28 PHP
PHP中$_FILES的使用方法及注意事项说明
2014/02/14 PHP
浅谈php扩展imagick
2014/06/02 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
python插入数据到列表的方法
2015/04/30 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
pip命令无法使用的解决方法
2018/06/12 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
2020/11/28 Python
Python 实现进度条的六种方式
2021/01/06 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
GC是什么?为什么要有GC?
2013/12/08 面试题
个人租房协议书范本
2014/09/30 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
大学生活感想
2015/08/10 职场文书
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript