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中文编码那些事
Jun 25 Python
浅谈Python中的私有变量
Feb 28 Python
将TensorFlow的模型网络导出为单个文件的方法
Apr 23 Python
Python堆排序原理与实现方法详解
May 11 Python
用Python将一个列表分割成小列表的实例讲解
Jul 02 Python
python散点图实例之随机漫步
Aug 27 Python
解决Python运行文件出现out of memory框的问题
Dec 03 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 Python
Python sublime安装及配置过程详解
Jun 29 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
Django展示可视化图表的多种方式
Apr 08 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
[原创]ThinkPHP让../Public在模板不解析(直接输出)的方法
2015/10/09 PHP
PHP中Http协议post请求参数
2015/11/02 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
JS.GetAllChild(element,deep,condition)使用介绍
2013/09/21 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
JSON字符串和对象之间的转换详解
2015/05/26 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
qrcode生成二维码微信长按无法识别问题的解决
2019/04/04 Javascript
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
Python httplib,smtplib使用方法
2008/09/06 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
Python线程指南详细介绍
2017/01/05 Python
Python中单例模式总结
2018/02/20 Python
python微信公众号开发简单流程
2018/03/23 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Python 读写文件的操作代码
2018/09/20 Python
带你认识Django
2019/01/15 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
Python通过format函数格式化显示值
2020/10/17 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
递归实现回文判断(如:abcdedbca就是回文,判断一个面试者对递归理解的简单程序)
2013/04/28 面试题
大整数数相乘的问题
2012/07/22 面试题
shell变量的作用空间是什么
2013/08/17 面试题
大学生求职简历的自我评价
2013/10/21 职场文书
护理职业生涯规划书
2014/01/24 职场文书
同学会主持词
2014/03/18 职场文书
中国梦我的梦演讲稿
2014/04/23 职场文书
教师求职自荐书
2014/06/14 职场文书
物流管理专业推荐信
2014/09/06 职场文书