日志服务IPython/Jupyter扩展实战:下载数据为Excel文件

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 想要将日志服务的日志下载并保存为Excel或者CSV格式,并且自动处理字段不一致的情况的话,该怎么办?通过使用日志服务IPython/Jupyter扩展,轻松做到这点。

问题

日志服务的数据并不要求统一格式,每条日志可以有不同的关键字集合,例如:

{"city": "123", "province": "vvv"}
{"city": "shanghai", "pop": "2000"}
{"name": "xiao ming", "home": "shanghai"}

因此一般使用日志服务的CLI下载的命令get_log_all或者pull_log_dump时,格式都是单行JSON格式以保证灵活性。

但是大部分情况下,一个日志库的所有日志的关键字集合总体是稳定的;另一方面,Excel格式(或者更简单的CSV格式)相对JSON更加商业应用和人类操作友好一些。

如果期望下载下来时是Excel或者CSV格式,并且自动处理字段不一致的情况的话,该怎么办?

本文通过使用日志服务IPython/Jupyter扩展,轻松做到这点。

前提

安装日志服务扩展

首先,参考文章日志服务IPythonIPython/Jupyter扩展完成安装(IPython Shell、IPython/Jupyter Notebook或者Jupyter Lab均可)

安装Excel相关组件

在IPython所在环境中安装Excel读写的相关组件:

pip install openpyxl xlrd xlwt XlsxWriter
  • openpyxl - 用于Excel 2010 xlsx/xlsm文件的读写
  • xlrd - 读取Exce (xls格式)
  • xlwt - 写Excel (xls格式)
  • XlsxWriter - 写Excel (xlsx)文件

配置

使用%manage_log配置好链接日志服务的相关入口、秘钥、项目和日志库等。具体参考这里

场景

1. 将结果保存到Excel中

通过查询命令%%log查询得到Pandas Dataframe,然后调用to_excel即可。

样例:

%%log -1day ~ now
* | select date_format(date_trunc('hour', __time__), '%H:%i') as dt,
        count(1)%100 as pv,
        round(sum(if(status < 400, 1, 0))*100.0/count(1), 1) AS ratio
        group by date_trunc('hour', __time__)
        order by dt limit 1000
df1 = log_df
df1.to_excel('output.xlsx')

2. 将结果保存到Excel多个Sheet中

通过%log%%log获得多个数据存在不同的Dataframe中后,如下样例操作:

import pandas as pd
writer = pd.ExcelWriter('output2.xlsx') 

df1.to_excel(writer, sheet_name='data1')
df2.to_excel(writer, sheet_name='data2')

writer.save()

3. 定制Excel细节格式

Pandas默认使用Xlwt模块xls文件、使用Openpyxl模块xlsx文件。而使用XlsxWriterxlsx功能更加全面灵活,但需要如下配置。

例如上面例子中的ExcelWriter构造时,增加参数即可:

writer = pd.ExcelWriter('output2.xlsx', engine='xlsxwriter') 

可以定制特定列的格式、样式、甚至直接画Excel图表。具体推荐参考这篇文章

4. 其他格式

Pandas DataFrame还可以保存其他格式,例如csvhtml等,可以进一步参考这里

进一步参考

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
6月前
|
机器学习/深度学习 监控 数据挖掘
Python 高效清理 Excel 空白行列:从原理到实战
本文介绍如何使用Python的openpyxl库自动清理Excel中的空白行列。通过代码实现高效识别并删除无数据的行与列,解决文件臃肿、读取错误等问题,提升数据处理效率与准确性,适用于各类批量Excel清理任务。
592 0
|
9月前
|
自然语言处理 Unix Linux
解决服务器中Jupyter笔记本的文件名字符编码问题
通过上述步骤,可以有效解决Jupyter笔记本的文件名字符编码问题,确保所有文件能在服务器上正常访问并交互,避免因编码问题引起的混淆和数据丢失。在处理任何编码问题时,务必谨慎并确保备份,因为文件名变更是
299 17
|
9月前
|
Python
Excel中如何批量重命名工作表与将每个工作表导出到单独Excel文件
本文介绍了如何在Excel中使用VBA批量重命名工作表、根据单元格内容修改颜色,以及将工作表导出为独立文件的方法。同时提供了Python实现导出工作表的代码示例,适用于自动化处理Excel文档。
|
11月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
704 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
10月前
|
缓存 网络协议
(问题日志)解决因代理设置导致的npm包ECONNREFUSED下载错误
在AIoT-IDE中使用`npm i`安装依赖时,若出现长时间无响应及ECONNREFUSED错误,可能是网络配置或代理冲突导致。通过指定镜像源与日志排查,确认为旧代理配置遗留问题。解决步骤包括:验证镜像源可用性、清除npm缓存、检查并更新代理配置。最终重新设置正确代理端口后,依赖安装恢复正常。
329 2
|
11月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
647 10
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
3561 65
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
文字识别 Serverless 开发工具
【全自动改PDF名】批量OCR识别提取PDF自定义指定区域内容保存到 Excel 以及根据PDF文件内容的标题来批量重命名
学校和教育机构常需处理成绩单、报名表等PDF文件。通过OCR技术,可自动提取学生信息并录入Excel,便于统计分析和存档管理。本文介绍使用阿里云服务实现批量OCR识别、内容提取、重命名及导出表格的完整步骤,包括开通相关服务、编写代码、部署函数计算和设置自动化触发器等。提供Python示例代码和详细操作指南,帮助用户高效处理PDF文件。 链接: - 百度网盘:[链接](https://pan.baidu.com/s/1mWsg7mDZq2pZ8xdKzdn5Hg?pwd=8866) - 腾讯网盘:[链接](https://share.weiyun.com/a77jklXK)
2118 5
|
Python
批量将不同的工作簿合并到同一个Excel文件
本文介绍如何使用Python的`pandas`库批量合并不同工作簿至同一Excel文件。通过模拟生成三个班级的成绩数据,分别保存为Excel文件,再将这些文件合并成一个包含所有班级成绩的总成绩单。步骤包括安装必要库、生成数据、保存与合并工作簿。
460 6
|
10月前
|
IDE 开发工具 Python
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级
魔搭notebook在web IDE下,使用jupyter notebook,python扩展包无法更新升级,不升级无法使用,安装python扩展包的时候一直停留在installing
259 4

相关产品

  • 日志服务