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 多线程实例详解
Mar 25 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
Oct 15 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
python2.7到3.x迁移指南
Feb 01 Python
python ipset管理 增删白名单的方法
Jan 14 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
python全栈知识点总结
Jul 01 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
python使用nibabel和sitk读取保存nii.gz文件实例
Jul 01 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 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 smarty函数扩展
2010/03/15 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
php实现微信公众号创建自定义菜单功能的实例代码
2019/06/11 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
python将文本转换成图片输出的方法
2015/04/28 Python
Python字符串详细介绍
2015/05/09 Python
浅谈对yield的初步理解
2017/05/29 Python
Python 元类实例解析
2018/04/04 Python
对python调用RPC接口的实例详解
2019/01/03 Python
学习python分支结构
2019/05/17 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
顶岗实习计划书
2014/01/10 职场文书
素食餐饮项目创业计划书
2014/02/02 职场文书
大学生社团活动总结
2014/04/26 职场文书
质量承诺书格式
2014/05/20 职场文书
党员服务承诺书
2014/05/28 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
小学优秀教师事迹材料
2014/12/16 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python