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中的多进程、多线程、协程
Jun 22 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
老生常谈Python进阶之装饰器
May 11 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
Sep 02 Python
python设定并获取socket超时时间的方法
Jan 12 Python
python3对接mysql数据库实例详解
Apr 30 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
Django框架视图函数设计示例
Jul 29 Python
tornado+celery的简单使用详解
Dec 21 Python
python print 格式化输出,动态指定长度的实现
Apr 12 Python
jupyter notebook插入本地图片的实现
Apr 13 Python
python温度转换华氏温度实现代码
Dec 06 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 什么是PEAR?(第二篇)
2009/03/19 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
jscript之List Excel Color Values
2007/06/13 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
使用Jquery实现点击文字后变成文本框且可修改
2013/09/21 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
JavaScript中string转换成number介绍
2014/12/31 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
在pycharm中开发vue的方法步骤
2020/03/04 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python实现自动更换ip的方法
2015/05/05 Python
自己使用总结Python程序代码片段
2015/06/02 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
实例教程 利用html5和css3打造一款创意404页面
2014/10/20 HTML / CSS
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
工商管理系学生的自我评价分享
2013/11/29 职场文书
班组安全员工作职责
2014/02/01 职场文书
工地安全质量标语
2014/06/07 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
安全温馨提示语大全
2015/07/14 职场文书
2016元旦晚会主持词开场白和结束语
2015/12/04 职场文书
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技