下面是從彈性搜索中獲取一些數據並將該數據導出到名爲'mycsvfile'的csv文件的代碼。如何打印出從彈性搜索導出的CVS文件中的列名?
我想更改列名以便它可以被人讀取。
下面是代碼:
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文件中的數據看起來象下面這樣:
DTDT TRDT SPLE SACL RPLE
20170512 12/05/2017 15:39 1001 0 0
20170512 12/05/2017 15:39 1001 0 0
20170908 08/09/2017 02:42 1001 0 0
20170908 08/09/2017 06:30 1001 0 0
正如你所看到的列名是一樣的查詢,並且我想在生成文件時給它們可讀的名稱。
有人可以顯示並修復我的代碼,以便將列名輸入到CSV文件中嗎?
謝謝你提前
你的問題很難理解。您的意思是您對「DTDT」不滿意,並且您希望爲此專欄指定不同的名稱,例如「日期」? – Wli
正確,我想命名像日期等列等抱歉的困惑,你可以編輯我的代碼,並告訴我如何做到這一點? – Rich
爲了清晰起見,我編輯了您的問題並回答了它。 – Wli