将 Elasticsearch 结果导出到 CSV 文件

2024-04-24

我正在尝试将使用以下查询找到的结果导出到桌面上的 CSV 中。

这是我第一次使用 Elasticsearch 和 cURL,所以我对如何做到这一点感到困惑。

from elasticsearch import Elasticsearch

es = Elasticsearch(["9200"])

# Replace the following Query with your own Elastic Search Query
res = es.search(index="search", body=
                {
                    "_source": ["DTDT", "TRDT", "SPLE", "RPLE"],
                    "query": {
                        "bool": {
                            "should": [
                                {"wildcard": {"CN": "TEST1"}}

                            ]
                        }
                    }
}, size=10)

for doc in res['hits']['hits']:
    print(doc)

现在,当我运行此查询时,它会返回 dave 的姓名、姓氏、地址和性别,我想在运行查询时将结果放入桌面上的 csv 中。

我一直在阅读有关如何执行此操作的链接,但我不确定如何使我的查询执行此操作 - (https://docs.python.org/3/library/csv.html https://docs.python.org/3/library/csv.html)

有人可以帮助我并告诉我如何在导出 csv 时转换我的查询吗?

thanks

我得到的输出是 -

{'_index': 'search', '_type': 'trades', '_id': '179299804977823744', '_score': 1.0, '_source': {'DTDT': '20170928', 'SPLE': '1001', 'RPLE': '1001', 'TRDT': '2017-09-28 17:01:19'}}

您可以使用csv模块来写入数据。

根据您给出的输出,我假设您想从中写入数据_source到 csv 文件。

Code :

from elasticsearch import Elasticsearch
import csv

es = Elasticsearch(["9200"])

# Replace the following Query with your own Elastic Search Query
res = es.search(index="search", body=
                {
                    "_source": ["DTDT", "TRDT", "SPLE", "RPLE"],
                    "query": {
                        "bool": {
                            "should": [
                                {"wildcard": {"CN": "TEST1"}}

                            ]
                        }
                    }
}, size=10)



with open('mycsvfile.csv', 'w') as f:  # Just use 'w' mode in 3.x
    header_present  = False
    for doc in res['hits']['hits']:
        my_dict = doc['_source'] 
        if not header_present:
            w = csv.DictWriter(f, my_dict.keys())
            w.writeheader()
            header_present = True


        w.writerow(my_dict)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Elasticsearch 结果导出到 CSV 文件 的相关文章