版本

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("任务已完成!")

python查询ES方法

[ES]Python查询ES导出数据为Excel的更多相关文章

  1. [Python]查询mysql导出结果至Excel并发送邮件

    环境:Linux +python2.7+mysql5.6 1.提前安装xlwt(excel写入操作模块),MySQLdb(mysql操作模块) 2.脚本如下: #!/usr/bin/python #c ...

  2. [Python]查询oracle导出结果至Excel并发送邮件

    环境:Linux +python2.7+oracle11g 1.提前安装xlwt(excel写入操作模块),cx_Oracle(oracle操作模块) cx_Oracle的安装步骤详见链接:https ...

  3. 使用python脚本从数据库导出数据到excel

    python从数据库导出数据到excel 最近需要从数据库里导出一些数据到excel,刚开始我是使用下面的命令 select * from xxx where xxx into outfile 'xx ...

  4. python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter

    最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...

  5. Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented

    在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...

  6. ASP.NET导出数据到Excel 实例介绍

    ASP.NET导出数据到Excel  该方法只是把asp.net页面保存成html页面只是把后缀改为xlc不过excel可以读取,接下连我看看还有别的方式能导出数据,并利用模版生成. 下面是代码 新建 ...

  7. 一个方便且通用的导出数据到 Excel 的类库

    一个方便且通用的导出数据到 Excel 的类库 起源: 之前在做一个项目时,客户提出了许多的导出数据的需求: 导出用户信息 导出业务实体信息 各种查询都要能导出 导出的数据要和界面上看到的一致 可以分 ...

  8. Delphi 导出数据至Excel的7种方法【转】

    一; delphi 快速导出excel   uses ComObj,clipbrd;   function ToExcel(sfilename:string; ADOQuery:TADOQuery): ...

  9. pl/sql developer导出数据到excel的方法

    http://yedward.net/?id=92 问题说明:使用pl/sql developer导出数据到excel表格中是非常有必要的,一般的可能直接在导出的时候选择csv格式即可,因为该格式可以 ...

随机推荐

  1. Spring Boot (九): 微服务应用监控 Spring Boot Actuator 详解

    1. 引言 在当前的微服务架构方式下,我们会有很多的服务部署在不同的机器上,相互是通过服务调用的方式进行交互,一个完整的业务流程中间会经过很多个微服务的处理和传递,那么,如何能知道每个服务的健康状况就 ...

  2. Redis的持久化机制是什么?各自的优缺点?

    Redis 提供两种持久化机制 RDB 和 AOF 机制: 1.RDBRedis DataBase)持久化方式:是指用数据集快照的方式半持久化模式) 记录 redis 数据库的所有键值对,在某个时间点 ...

  3. springcloud --- spring cloud sleuth和zipkin日志管理(spring boot 2.18)

    前言 在spring cloud分布式架构中,系统被拆分成了许多个服务单元,业务复杂性提高.如果出现了异常情况,很难定位到错误位置,所以需要实现分布式链路追踪,跟进一个请求有哪些服务参与,参与的顺序如 ...

  4. 用深度学习做命名实体识别(六)-BERT介绍

    什么是BERT? BERT,全称是Bidirectional Encoder Representations from Transformers.可以理解为一种以Transformers为主要框架的双 ...

  5. Java 学习笔记之 Error和Exception的联系

    Error和Exception的联系: Error和Exception的联系 继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Excepti ...

  6. Executor线程池原理详解

    线程池 线程池的目的就是减少多线程创建的开销,减少资源的消耗,让系统更加的稳定.在web开发中,服务器会为了一个请求分配一个线程来处理,如果每次请求都创建一个线程,请求结束就销毁这个线程.那么在高并发 ...

  7. Windows系统调用中API的3环部分(依据分析重写ReadProcessMemory函数)

    Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html Windows系统调用中API的3环部分 一.R3环API分析的重 ...

  8. PHP list的赋值

    List右边的赋值对象是一个以数值为索引的数组,左边的变量的位置和赋值对象的键值一一对应,有些位置的变量可以省略不写.非末尾的被赋值变量省略时,分隔的逗号不能省略.左边变量被赋值的顺序是从右到左的. ...

  9. PHP 哈夫曼的实现

    <?php namespace Test; use Iterator; use ArrayAccess; use Exception; // 叶子结点或者连接结点的基类 class Huffma ...

  10. 真——Springcloud支持Https

    很久不写了,因为一直没有一个项目的需求推动,担心写的东西可能不是太实际.其间学习的事倒是做了不少,设计模式.领域开发.Antlr.kubernetes等等,其实大部分都记在纸质笔记上了.. 基于对新技 ...