以下は、弾性検索からデータを取得し、そのデータを '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