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 CGI脚本的教程
Jun 29 Python
用Python编写简单的微博爬虫
Mar 04 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 Python
Python利用ElementTree模块处理XML的方法详解
Aug 31 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
python 通过可变参数计算n个数的乘积方法
Jun 13 Python
python3发送邮件需要经过代理服务器的示例代码
Jul 25 Python
python之yield和Generator深入解析
Sep 18 Python
Pandas 缺失数据处理的实现
Nov 04 Python
详解从Django Allauth中进行登录改造小结
Dec 18 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
Python基于Serializer实现字段验证及序列化
Nov 04 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
星际流派综述
2020/03/04 星际争霸
php获取mysql数据库中的所有表名的代码
2011/04/23 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
常见的四种POST 提交数据方式(小总结)
2015/10/08 PHP
php冒泡排序与快速排序实例详解
2015/12/07 PHP
如何用PHP做到页面注册审核
2017/03/02 PHP
Yii框架分页实现方法详解
2017/05/20 PHP
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
Bootstrap所支持的表单控件实例详解
2016/05/16 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
URL中“#” “?” &amp;“”号的作用浅析
2017/02/04 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
JavaScript变速动画函数封装添加任意多个属性
2019/04/03 Javascript
vue+axios 拦截器实现统一token的案例
2020/09/11 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Python将多个excel文件合并为一个文件
2018/01/03 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
python 处理微信对账单数据的实例代码
2019/07/19 Python
pytorch中的卷积和池化计算方式详解
2020/01/03 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
python range实例用法分享
2020/02/06 Python
耐克亚太地区:Nike APAC
2019/12/07 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
服装机修工岗位职责
2013/12/26 职场文书
会议开场欢迎词
2014/01/15 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
小学生教师节广播稿
2015/08/19 职场文书
详解Laravel服务容器的优势
2021/05/29 PHP
Spring 使用注解开发
2022/05/20 Java/Android