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 11 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
python基于ID3思想的决策树
Jan 03 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
Python中循环后使用list.append()数据被覆盖问题的解决
Jul 01 Python
python numpy元素的区间查找方法
Nov 14 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
python如何实现异步调用函数执行
Jul 08 Python
python:动态路由的Flask程序代码
Nov 22 Python
Python Pandas 对列/行进行选择,增加,删除操作
May 17 Python
python开根号实例讲解
Aug 30 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 !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
2011/01/07 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
3种php生成唯一id的方法
2015/11/23 PHP
php json中文编码为null的解决办法
2016/12/14 PHP
犀利的js 函数集合
2009/06/11 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
2013/03/29 Javascript
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
JavaScript数据结构之链表的实现
2017/03/19 Javascript
Angular实现的table表格排序功能完整示例
2017/12/22 Javascript
vue-cli扩展多模块打包的示例代码
2018/04/09 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
Vue 实现html中根据类型显示内容
2019/10/28 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
微信小程序12行js代码自己写个滑块功能(推荐)
2020/07/15 Javascript
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
在django中使用自定义标签实现分页功能
2017/07/04 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
解决Django no such table: django_session的问题
2020/04/07 Python
matplotlib 对坐标的控制,加图例注释的操作
2020/04/17 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
python之django路由和视图案例教程
2021/07/26 Python