Python-有没有一种好的中间格式可以将混合数据导出到多个文件类型



我有一个模型,它以numpy数组、文本和绘图的形式生成输出。它当前将此输出作为字典保存。

输出需要以各种格式呈现。特别是PDF、Word和Excel。

我的解决方案是将所有数据写入HTML字符串,并使用黄页打印将HTML导出为PDF。然后我会将HTML的表格部分导出到Excel。这还可以,但很乱。

我想知道是否有更简单的方法可以做到这一点?在我看来,也许有一个模块可以让你将信息存储在字典中,并指定其数据类型,然后一个过程可以处理它的格式并导出为各种格式。

我想回答我自己的问题,以演示我作为解决方案实现了什么。

由于数据格式是多媒体的(文本、数字、绘图(,我采用了两种方法:

  • Report类,具有导出txt、html、docx和pdf的功能
  • Workbook类,具有导出xlsx和csv的功能

两个类都继承了相同的数据结构,即包含数字和元数据的嵌套字典。Report类然后获取额外的文本,并根据数据创建绘图。

例如,数据类似于这样的结构:

data = {
"Some Label":{
"An Item":[1,2,3,4,5]
}
}

Report类使用Dominate构建了一个HTML字符串,并且可以通过渲染该字符串导出为HTML,通过将渲染的HTML馈送到WeasyPrint导出为PDF,或者通过PyPandoc将渲染的HTML转换为Docx导出为Docx(或理论上的其他格式(

Workbook类通过值的字典进行迭代,并将这些值的组写入Pandas数据帧,并使用pd.ExcelWriter将它们导出到工作簿中。相同的数据帧可以导出到csv,并使用此处的自适应解决方案压缩到zip文件中。

最新更新