[ES]Python查询ES导出数据为Excel
版本
elasticsearch5.5.0
python3.7
说明
用python查询es上存储的状态数据,将查询到的数据用pandas处理成excel
code
# -*- coding: utf-8 -*-
# @Time : 2019/7/22 10:41
# @Author : Skyell Wang
# @FileName: es_data_get.py
from elasticsearch import Elasticsearch
import pandas as pd
import os
def elastic_data(vin):
"""
:param vin:
:return:
"""
# 连接es集群
es = Elasticsearch(["ip"],
http_auth=('elastic', 'password'),
port=9200)
# 根据特定条件获取数据
body = {
"query": {
"term": {
"vin": vin
}
}
}
# 取出vin odometer
para = {
"_source": "vin,odometer"
}
# 获取数据
query = es.search(index=ddfsdfd', doc_type='dfsf',
size=1000, body=body, params=para)
results = query['hits']['hits']
# 判断数据是否为空
if results == []:
print('vin数据不存在', vin)
else:
try:
# 存储逻辑:如果总里程数据存储,则正常存储,否则置为'null'
if 'odometer' not in results[0]['_source']:
results[0]['_source']['odometer'] = 0
print(results[0]['_source'])
else:
print(results[0]['_source'])
except NameError as e:
print(e)
return results[0]['_source']
if __name__ == "__main__":
path = "E:\MyCode\ML_InAction\data_analysis\data_do"
gc5_vin = "GC5_vin.csv"
gc5_vin_path = os.path.join(path, gc5_vin)
excel_file_name = 'GC5_data.xlsx'
excel_path = os.path.join(path, excel_file_name)
# 获取csv文件中固定列(vehicle_identifier)
df_data = pd.read_csv(gc5_vin_path, usecols=['vehicle_identifier'])
vin_data_list = []
for i in range(len(df_data)):
data_gc5 = elastic_data(df_data['vehicle_identifier'][i])
# 判断是否为字典类型,如果是则存入list中
is_dict = isinstance(data_gc5, dict)
if is_dict:
vin_data_list.append(data_gc5)
# 转成dateframe类型,并存入excel
vin_data_df = pd.DataFrame(vin_data_list)
vin_data_df.to_excel(excel_path, index=False)
print("任务已完成!")
[ES]Python查询ES导出数据为Excel的更多相关文章
- [Python]查询mysql导出结果至Excel并发送邮件
环境:Linux +python2.7+mysql5.6 1.提前安装xlwt(excel写入操作模块),MySQLdb(mysql操作模块) 2.脚本如下: #!/usr/bin/python #c ...
- [Python]查询oracle导出结果至Excel并发送邮件
环境:Linux +python2.7+oracle11g 1.提前安装xlwt(excel写入操作模块),cx_Oracle(oracle操作模块) cx_Oracle的安装步骤详见链接:https ...
- 使用python脚本从数据库导出数据到excel
python从数据库导出数据到excel 最近需要从数据库里导出一些数据到excel,刚开始我是使用下面的命令 select * from xxx where xxx into outfile 'xx ...
- python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter
最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...
- Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented
在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...
- ASP.NET导出数据到Excel 实例介绍
ASP.NET导出数据到Excel 该方法只是把asp.net页面保存成html页面只是把后缀改为xlc不过excel可以读取,接下连我看看还有别的方式能导出数据,并利用模版生成. 下面是代码 新建 ...
- 一个方便且通用的导出数据到 Excel 的类库
一个方便且通用的导出数据到 Excel 的类库 起源: 之前在做一个项目时,客户提出了许多的导出数据的需求: 导出用户信息 导出业务实体信息 各种查询都要能导出 导出的数据要和界面上看到的一致 可以分 ...
- Delphi 导出数据至Excel的7种方法【转】
一; delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery): ...
- pl/sql developer导出数据到excel的方法
http://yedward.net/?id=92 问题说明:使用pl/sql developer导出数据到excel表格中是非常有必要的,一般的可能直接在导出的时候选择csv格式即可,因为该格式可以 ...
随机推荐
- 什么是ECMAScript、什么又是ECMA?
转载:针对于ECMA5Script .ECMAScript6.TypeScript的认识 什么是ECMAScript.什么又是ECMA? Ecma国际(Ecma International)是一家国际 ...
- Mongoose: aggregate聚合 $group使用说明
aggregate聚合是通过管道操作实现的.聚合管道里的每一步输出,都会作为下一步的输入,每一步在输入文档执行完操作后生成输出文档. 聚合管道: $project 修改输入文档的结构.可以用来重命名 ...
- Spring Boot (十一): Spring Boot 定时任务
在实际的项目开发工作中,我们经常会遇到需要做一些定时任务的工作,那么,在 Spring Boot 中是如何实现的呢? 1. 添加依赖 在 pom.xml 文件中只需引入 spring-boot-sta ...
- pycharm 激活码 2019/12最新福利(3)
K6IXATEF43-eyJsaWNlbnNlSWQiOiJLNklYQVRFRjQzIiwibGljZW5zZWVOYW1lIjoi5o6I5p2D5Luj55CG5ZWGOiBodHRwOi8va ...
- Bran的内核开发教程(bkerndev)-03 内核初步
目录 内核初步 内核入口 链接脚本 汇编和链接 PS: 下面是我自己写的 64位Linux下的编译脚本 内核初步 在这节教程, 我们将深入研究一些汇编程序, 学习创建链接脚本的基础知识以及使用它的 ...
- Windows 服务程序(二)
服务控制管理器 (SCM, Service Control Manager),它在系统启动时自动启动,其主要作用是维护和管理一张服务信息表. OpenSCManager() 介绍:功能:建立了一个到服 ...
- [牛客网NOIP赛前集训营-提高组(第一场)]C.保护
链接:https://www.nowcoder.com/acm/contest/172/C来源:牛客网 题目描述 C国有n个城市,城市间通过一个树形结构形成一个连通图.城市编号为1到n,其中1号城市为 ...
- Bzoj 4806 炮 (dp)
题目描述 众所周知,双炮叠叠将是中国象棋中很厉害的一招必杀技.炮吃子时必须隔一个棋子跳吃,即俗称"炮打隔子". 炮跟炮显然不能在一起打起来,于是rly一天借来了许多许多的炮在棋盘 ...
- [JZOJ5773]【NOIP2008模拟】简单数学题
Description 话说, 小X是个数学大佬,他喜欢做数学题.有一天,小X想考一考小Y.他问了小Y一道数学题.题目如下: 对于一个正整数N,存在一个正整数T(0<T&l ...
- Smali语言基础语法
1.Smali语言基础语法-数据类型与描述符 smali中有两类数据类型:基本类型和引用类型.引用类型是指数组和对象,其它都是基础类型. 基本类型以及每种类型的描述符: Java类型 类型描述符 说明 ...