Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Elasticsearch结果导出到CSV文件中_Python_Python 3.x_Curl_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Export To Csv - Fatal编程技术网 elasticsearch,export-to-csv,Python,Python 3.x,Curl,elasticsearch,Export To Csv" /> elasticsearch,export-to-csv,Python,Python 3.x,Curl,elasticsearch,Export To Csv" />

Python 将Elasticsearch结果导出到CSV文件中

Python 将Elasticsearch结果导出到CSV文件中,python,python-3.x,curl,elasticsearch,export-to-csv,Python,Python 3.x,Curl,elasticsearch,Export To Csv,我正在尝试将使用以下查询找到的结果导出到我桌面上的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=

我正在尝试将使用以下查询找到的结果导出到我桌面上的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中

我一直在阅读这个关于如何做到这一点的链接,但我不知道如何让我的查询做到这一点-()

有人可以帮助我,并告诉我如何转换我的查询导出一个csv请

谢谢

我得到的结果是-

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

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

根据您给出的输出,我假设您希望将数据从
\u source
写入csv文件

代码:

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)

你能给出打印输出(文档)吗?有几行将完成我发布的查询,我已经编辑了一些代码,比如我正在搜索的内容。你需要原始代码吗。唯一的区别是列名。我更新了我原来的帖子时的输出和原来的代码现在。谢谢你看。我正在努力将我的代码转换为CSV格式导出结果。当您在上面编写代码并打印结果时,最后在for循环中,需要输出以了解数据是如何来的。感谢您的快速回复,你看过我的更新文章和我的更新代码了吗?你能告诉我如何用我的代码添加你的代码吗?我有很多错误获取[status:N/A request:8.984s]回溯(最近一次调用):文件“C:\Users\AppData\Local\Programs\Python\Python 36-32\lib\site packages\urllib3\util\connection.py”,第60行,在socket.getaddrinfo(主机、端口、系列、socket.SOCK_流)中为res创建_连接:文件“C:\Users\\AppData\Local\Programs\Python\Python36-32\lib\socket.py”,第745行,在getaddrinfo中为res创建_socket.getaddrinfo(主机、端口、系列、类型、协议、标志):socket.gairro:[Errno 11004]getaddrinfo在处理上述异常时失败,出现了另一个异常:很抱歉,我看到了我犯的错误,我修复了它并运行了查询,它创建了CSV文件,但文件中没有数据,我也收到了一个名为Traceback的错误(最近一次调用):文件“C:/Users/.PyCharmCE2017.2/config/scratch/test1.py”,第26行,在w=csv.DictWriter(f,my_dict.keys())中name错误:名称“my_dict”没有定义顺便说一句,我只想说谢谢你帮助我,我一直在看其他例子来让这篇文章与专栏一起工作,所以我可能稍后再发一篇文章,但如果我们能做到这一点,我将不胜感激!