python3查询es数据并导出csv

这段代码演示了如何使用Python的Elasticsearch库查询Elasticsearch数据库,并将所有查询结果导出到CSV文件。首先,它连接到指定的ES节点,然后执行一个搜索查询(这里查询名字为'张三'的数据),通过滚动API获取所有数据。最后,将每个文档的_id和name字段写入CSV文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python3查询es数据并导出csv

代码展示

from elasticsearch import Elasticsearch
import csv
# 获取es数据库
ES = [
    'http://192.168.1.111:9200'
]
es = Elasticsearch(ES)
'''
    查询所有数据并导出
'''
def ExportCsv():
    body = {
      # "query": {
      #   "match": {"name": "张三"},
      # }
    }
    query = es.search(index='lagou',body=body,scroll='5m',size=1000)
    # es查询出的结果第一页
    results = query['hits']['hits']
    # es查询出的结果总量
    total = query['hits']['total']["value"]
    # 游标用于输出es查询出的所有结果
    scroll_id = query['_scroll_id']

    for i in range(0, int(total/100)+1):
        # scroll参数必须指定否则会报错
        query_scroll = es.scroll(scroll_id=scroll_id,scroll='5m')['hits']['hits']
        results += query_scroll

    with open('./test.csv', 'w', newline='', encoding="utf_8_sig") as flow:
        csv_writer = csv.writer(flow)
        for res in results:
            csvrow1=[]
            csvrow1.append( res['_id'] )
            csvrow1.append( res["_source"]['name'] )
            csv_writer.writerow(csvrow1)
    print('done!')

ExportCsv()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值