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中关于使用模块的基础知识
May 24 Python
利用Python如何生成hash值示例详解
Dec 20 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
Python对象属性自动更新操作示例
Jun 15 Python
Tensorflow 合并通道及加载子模型的方法
Jul 26 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
pycharm中leetcode插件使用图文详解
Dec 07 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/06/13 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
用javascript操作xml
2006/11/04 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
js中switch语句的学习笔记
2020/03/25 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
python中实现定制类的特殊方法总结
2014/09/28 Python
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
python距离测量的方法
2018/03/06 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
Python 使用 environs 库定义环境变量的方法
2020/02/25 Python
Django admin组件的使用
2020/10/24 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
新大陆软件面试题
2016/11/24 面试题
营业员演讲稿
2013/12/30 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
公司租房协议书
2014/10/14 职场文书
整脏治乱工作简报
2015/07/21 职场文书
赡养老人协议书范本
2015/08/06 职场文书
关于车尾的标语大全
2015/08/11 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android