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实现定时播放mp3
Mar 29 Python
python安装与使用redis的方法
Apr 19 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
Dec 14 Python
python实现批量解析邮件并下载附件
Jun 19 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
Python 类的魔法属性用法实例分析
Nov 21 Python
Python Gluon参数和模块命名操作教程
Dec 18 Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 Python
python实现快递价格查询系统
Mar 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
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
laravel 多图上传及图片的存储例子
2019/10/14 PHP
jquery实现图片渐变切换兼容ie6/Chrome/Firefox
2013/08/02 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
js实现按Ctrl+Enter发送效果
2014/09/18 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
Angular模板表单校验方法详解
2017/08/11 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
2017/10/25 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
微信小程序录音实现功能并上传(使用node解析接收)
2020/02/26 Javascript
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Django中提示消息messages的设置方式
2019/11/15 Python
Django 实现图片上传和下载功能
2020/12/31 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
New Balance美国官网:运动鞋和健身服装
2017/04/11 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
史上最全面的Java面试题汇总!
2015/02/03 面试题
计算机专业毕业生自荐信
2013/12/31 职场文书
公司庆典邀请函范文
2014/01/13 职场文书
搞笑Gif:这么白这么长的腿像极了一楼的女朋友
2022/03/21 杂记