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和GO语言实现的消息摘要算法示例
Mar 10 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
基于hashlib模块--加密(详解)
Jun 21 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
解决python3中cv2读取中文路径的问题
Dec 05 Python
django的ORM模型的实现原理
Mar 04 Python
Flask框架请求钩子与request请求对象用法实例分析
Nov 07 Python
python enumerate内置函数用法总结
Jan 07 Python
jupyter notebook 重装教程
Apr 16 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Apr 08 Python
python获取带有返回值的多线程
May 02 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 empty函数 使用说明
2009/08/10 PHP
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
2014/06/20 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
PHP命令行执行整合pathinfo模拟定时任务实例
2016/08/12 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
document.all与WEB标准
2020/05/13 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
JavaScript实现的前端AES加密解密功能【基于CryptoJS】
2018/08/28 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
[47:02]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS paiN
2018/03/30 DOTA
Tensorflow简单验证码识别应用
2017/05/25 Python
详解Python中where()函数的用法
2018/03/27 Python
Flask Web开发入门之文件上传(八)
2018/08/17 Python
python 格式化输出百分号的方法
2019/01/20 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
python字典一键多值实例代码分享
2019/06/14 Python
python能做哪些生活有趣的事情
2020/09/09 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
教师节领导致辞
2015/07/29 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
小学班主任心得体会
2016/01/07 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技