【发布时间】:2017-10-16 22:02:25
【问题描述】:
下面的查询是抓取数据并创建一个 CSV 文件,我遇到的问题是名为“SPLE”的源在数据库中存储了数字为 0、1、50 的数据。
但是在 CSV 中,这些数字正在被收集到 CSV 中,我希望在创建 CSV 时以某种方式将这些数字表示为诸如,
0 = 真
1 = 错误
50 = 待处理
谁能告诉我这是怎么做到的,我一直在努力解决这个问题?
我的代码:
from elasticsearch import Elasticsearch
import csv
es = Elasticsearch(["9200"])
res = es.search(index="search", body=
{
"_source": ["DTDT", "TRDT", "SPLE", "RPLE"],
"query": {
"bool": {
"should": [
{"wildcard": {"CN": "TEST*"}}
]
}
}
}, size=10)
header_names = { 'DTDT': 'DATE', 'SPLE': 'TAG', ...}
with open('mycsvfile.csv', 'w') as f:
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.writerow(header_names)
header_present = True
w.writerow(my_dict)
CSV 文件中的输出为:
Date SPLE Venue
20171016 1 Central
20171016 0 Central
20171016 50 Central
【问题讨论】:
-
您能否发布一个查询结果
res的示例结果? -
日期 TAG 上课地点 20171016 0 5 Central 20171016 1 5 Central 20171016 1 5 Central 20171016 0 5 Central 20171016 50 5 Central 20171016 0 5 Central 20171016 0 15 Central 201>
-
我不确定您是否能理解评论部分的输出?但是 TAG 列有数字,我想要代表数字的文本。如果这有意义
-
我无法理解查询输出。您能否在问题中添加格式化的结果。
标签: python python-2.7 python-3.x csv python-3.6