读取Elasticsearch中数据并写入到json中

读取ES中数据,并将数据写入到json中

from elasticsearch6 import Elasticsearch
import json


def elasic_data(classID,predn):
    # 连接ES
    ES = [
        'xx.xx.xxx:9200'
    ]
    es = Elasticsearch(ES, http_auth=('user', 'password'), sniff_on_start=True,
                       sniff_on_connection_fail=True, sniff_timeout=60)
    # 查询语句
    query = {
        'query': {
            'match': {
                'classId': classID
            }
        }
    }
    filter_path = ['hits.hits._source.id']
    result = es.search(index='index_name', doc_type='index_type', body=query, filter_path=filter_path, size=2000)    
	#result结构为:{'hits': {'hits': [{'_source': {'id': 6545575371252041}}, {'_source': {'id': 6545575371252035}}]}}    
    ids = result['hits']['hits']
    idlist = []
    for i in ids:
        idlist.append(i['_source'])
    print(idlist)
    dnlist = []
    for i in range(1, len(idlist)):
        dn = predn + str(i)
        di = {'dn': dn}
        dis = dict(di, **idlist[i])
        dnlist.append(dis)
    with open('json路径, 'w') as f:
        json.dump(dnlist, f)


if __name__ == "__main__":
    elasic_data(xxxx, 'predn')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值