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 17 Python
python 批量修改/替换数据的实例
Jul 25 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
Python3实现的简单工资管理系统示例
Mar 12 Python
Python TestCase中的断言方法介绍
May 02 Python
Django用户认证系统 组与权限解析
Aug 02 Python
Python之指数与E记法的区别详解
Nov 21 Python
Python中类似于jquery的pyquery库用法分析
Dec 02 Python
python3爬取torrent种子链接实例
Jan 16 Python
Python Django中的STATIC_URL 设置和使用方式
Mar 27 Python
python如何实现读取并显示图片(不需要图形界面)
Jul 08 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 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/06/14 PHP
Laravel 5 学习笔记
2015/03/06 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
Android中的jQuery:AQuery简介
2014/05/06 Javascript
node+express+ejs制作简单页面上手指南
2014/11/26 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
js转换对象为xml
2017/02/17 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
2018/08/27 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
[50:44]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第二场 2月22日
2021/03/11 DOTA
Python使用MD5加密字符串示例
2014/08/22 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Python中logging实例讲解
2019/01/17 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Django权限设置及验证方式
2020/05/13 Python
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
最新党员思想汇报
2014/01/01 职场文书
我的五年职业生涯规划
2014/01/23 职场文书
渡河少年教学反思
2014/02/12 职场文书
促销活动总结
2014/04/28 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫