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的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
Python版名片管理系统
Nov 30 Python
PyTorch搭建一维线性回归模型(二)
May 22 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
Python的互斥锁与信号量详解
Sep 12 Python
Python随机数函数代码实例解析
Feb 09 Python
matplotlib 对坐标的控制,加图例注释的操作
Apr 17 Python
python 数据分析实现长宽格式的转换
May 18 Python
matplotlib图例legend语法及设置的方法
Jul 28 Python
Python实战之实现康威生命游戏
Apr 26 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
Feb 12 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防止用户重复提交表单
2015/11/02 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
PHP对象相关知识总结
2017/04/09 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
2016/07/12 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
[04:55]完美世界副总裁蔡玮:DOTA2的自由、公平与信任
2013/12/18 DOTA
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Python常见工厂函数用法示例
2018/03/21 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
一个入门级python爬虫教程详解
2021/01/27 Python
个人自我鉴定范文
2013/10/04 职场文书
20岁生日感言
2014/01/13 职场文书
中学生操行评语
2014/04/24 职场文书
银行员工考核评语
2014/12/31 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
2015年国庆节标语大全
2015/07/30 职场文书
尊师重教主题班会
2015/08/14 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript