您的位置:首页 > 脚本大全 > > 正文

python操作json库(Python将json文件写入ES数据库的方法)

更多 时间:2021-10-22 07:41:10 类别:脚本大全 浏览量:2950

python操作json库

Python将json文件写入ES数据库的方法

1、安装elasticsearch数据库

ps:在此之前需首先安装java se环境

下载elasticsearch-6.5.2版本,进入/elasticsearch-6.5.2/bin目录,双击执行elasticsearch.bat 打开浏览器输入http://localhost:9200  显示以下内容则说明安装成功

python操作json库(Python将json文件写入ES数据库的方法)

安装head插件,便于查看管理(还可以用kibana)

首先安装Nodejs(下载地址https://nodejs.org/en/)

再下载elasticsearch-head-master包解压到/elasticsearch-6.5.2/下(链接: https://pan.baidu.com/s/1q3kokfhpuj2q3otpgu7ldg

提取码: 1rpp

修改配置文件elasticsearch-6.5.2\config\elasticsearch.yml如下:

python操作json库(Python将json文件写入ES数据库的方法)

进入elasticsearch-head-master目录下执行npm install -g grunt-cli,再执行npm install安装依赖

elasticsearch-head-master目录下找到gruntfile.js文件修改服务器监听地址如下:

python操作json库(Python将json文件写入ES数据库的方法)

执行grunt server命令启动head服务

python操作json库(Python将json文件写入ES数据库的方法)

访问地址 http://localhost:9100/ 即可访问head管理页面

python操作json库(Python将json文件写入ES数据库的方法)

2、将json文件写入es数据库(py脚本如下)

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • # -*- coding: utf-8 -*-
  • from itertools import islice
  • import json , sys
  • from elasticsearch import elasticsearch , helpers
  • import threading
  • _index = 'indextest' #修改为索引名
  • _type = 'string'  #修改为类型名
  • es_url = 'http://192.168.116.1:9200/' #修改为elasticsearch服务器
  • reload(sys)
  • sys.setdefaultencoding('utf-8')
  • es = elasticsearch(es_url)
  • es.indices.create(index=_index, ignore=400)
  • chunk_len = 10
  • num = 0
  • def bulk_es(chunk_data):
  •  bulks=[]
  •  try:
  •   for i in xrange(chunk_len):
  •    bulks.append({
  •      "_index": _index,
  •      "_type": _type,
  •      "_source": chunk_data[i]
  •     })
  •   helpers.bulk(es, bulks)
  •  except:
  •   pass
  • with open(sys.argv[1]) as f:
  •  while true:
  •   lines = list(islice(f, chunk_len))
  •   num =num +chunk_len
  •   sys.stdout.write('\r' + 'num:'+'%d' % num)
  •   sys.stdout.flush()
  •   bulk_es(lines)
  •   if not lines:
  •    print "\n"
  •    print "task has finished"
  •    break
  • 总结

    以上所述是小编给大家介绍的python将json文件写入es数据库的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!

    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    原文链接:https://www.cnblogs.com/poziiey/archive/2019/04/09/10677946.html

    您可能感兴趣