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函数编程的一些特性
Apr 13 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
Python实现GUI学生信息管理系统
Apr 05 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
python numpy--数组的组合和分割实例
Feb 24 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
构建高效的python requests长连接池详解
May 02 Python
django 装饰器 检测登录状态操作
Jul 02 Python
Python collections模块的使用方法
Oct 09 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 Python
ASP.NET Core中的配置详解
Feb 05 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获取http请求的头信息实现步骤
2012/12/16 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
php爬取天猫和淘宝商品数据
2018/02/23 PHP
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
纯js分页代码(简洁实用)
2013/11/05 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
2016/06/12 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
jquery中each循环的简单回滚操作
2017/05/05 jQuery
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
JS实现图片转换成base64的各种应用场景实例分析
2018/06/22 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
Python连接Impala实现步骤解析
2020/08/04 Python
python中append函数用法讲解
2020/12/11 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
2014年教师培训的自我评价
2014/01/03 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers