使用Python将JSON,XML和YAML数据写入Excel文件

2025-04-12 10:50

本文主要是介绍使用Python将JSON,XML和YAML数据写入Excel文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何...

在当今数据驱动的技术生态中,JSON、XML和YAML作为主流结构化数据格式,因其层次http://www.chinasem.cn化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体。然而,当需要将这类半结构化数据转化为具备直观可视化、动态计算和协作共享特性的载体时,Excel文件因其在商业分析、科研管理和跨部门协作中的不可替代性,成为数据落地的终极界面。通过Python实现这一转换过程,不仅能突破不同数据范式间的语义鸿沟,更可构建自动化数据管道,在保留原始数据完整性的同时,赋予其动态排序、公式计算和数据透视等增值能力。本文将介绍如何使用Python导入JSON、XML和YAML格式数据到Excel文件中。

本文所使用的数据写入方法需要用到Free Spire.XLS for Python,PyPI:pip install spire.xls.free

如何使用Python写入数据到Excel工作表

我们可以使用Free Spire.XLS for Python提供的类、属性和方法来创建或载入Excel文件,并处理数据到单元格的写入以及工作表格式设置等操作。以下是操作步骤示例:

  • 创建Workbook实例以新建Excel工作簿(新建的工作簿会有三个默认工作表),或使用Workbook.LoadFromFile()方法载入已有工作簿。
  • 使用Workbook.Worksheets.get_Item()方法获取指定工作表,或使用Workbook.Worksheets.Add(sheetName: str)方法直接新建工作表。
  • 通过json、xml.etree.ElementTree和yaml组件读取相应数据。
  • 使用Worksheet.Range.get_Item()方法获取指定单元格为CellRange对象,并使用CellRange.Value属性讲数据写入单元格中。
  • 使用CellRange.BuiltInStyle、CellRange.ApplyStyle()、Worksheet.AutoFitColumn()等属性和方法,对工作表及单元格格式进行设置。
  • 使用Workbook.SaveToFile()方法保存Excel工作簿到文件。

用Python导入JSON数据到Excel工作表

JSON是一种轻量级数据交换格式,常用于Web应用中前后端数据传输。在Python中,我们可以使用标准库中的json内置组件来解析JSON文件,并提取其中数据。提取到数据之后,我们可以使用Spire.XLS for Python将其写入Excel工作表并自定义格式,完成JSON数据到Excel文件的导入。

代码示例:

# 导入所需库
from spire.xls import Workbook, FileFormat, BuiltInStyles
import json

# 读取并解析JSON订单数据
with open("E-Commerce Order Data.json", "r", encoding="utf-8") as f:
    jsonData = json.load(f)

# 定义Excel列标题
headers = ["order_id", "customer", "order_date", "status", "total", "product", "quantity", "price"]

# 将嵌套的JSON结构转换为扁平化表格数据
rows = []
for order in jsonData:
    for item in order["items"]:
        # 合并订单主数据和商品明细数据
        row = [
            order["order_id"], order["customer"], order["order_date"],
            order["status"], str(order["total"]), item["product"],
            str(item["quantity"]), str(item["price"])
        ]
        rows.append(row)python

# 初始化Excel工作簿和工作表
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Orders")

# 写入表头到首行
for col, header in enumerate(headers):
    sheet.Range[1, col + 1].Value = header

# 写入数据行内容
for row_idx, row_data in enumerate(rows):
    for col_idx, value in enumerate(row_data):
        sheet.Range[row_idx + 2, col_idx + 1].Value = value

# 设置表格样式
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading2  # 标题行样式
for row in range(1, sheet.Rows.Count):
    sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent2_40  # 数据行样式

# 自动调整列宽
for col in range(sheet.Columns.Count):
    sheet.AutoFitColumn(col + 1)

# 保存并释放资源
workbook.SaveToFile("output/JSONToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()

为了演示清晰,以上代码直接基于已知的字段结构进行提取。在实际项目中,建议根据具体的数据格式动态处理字段,或增加容错逻辑以应对结构变动。

JSON文件:

使用Python将JSON,XML和YAML数据写入Excel文件

输出Excel文件:

使用Python将JSON,XML和YAML数据写入Excel文件

用Python导入XML数据到Excel工作表

XML是一种js标记语言,适合表示结构复杂的数据,支持丰富的功能(如属性、注释)。同样,Python标准库也提供了xml.etree.ElementTree组件,可以帮助我们提取XML文件中的数据。我们可以使用该组件搭配Free Spire.XLS for Python来实现导入XML数据到Excel文件。

代码示例:

# 导入XML处理库和Excel操作库
import xml.etree.ElementTree as ET
from spire.xls import Workbook, FileFormat, BuiltInStyles

# 解析XML变更日志文件
tree = ET.parse("Software Manual Changelog.xml")
root = tree.getroot()

# 定义表格列标题
headers = ["version", "date", "editor", "change"]
rows = []

# 提取并转换XML数据结构
for entry in root.findall("entry"):
    # 提取公共字段
    version = entry.findtext("version", "")
    date = entry.findtext("date", "")
    editor = entry.findtext("editor", "")

    # 展开多个变更条目为独立行
    for change in entry.find("changes").findall("change"):
        rows.append([version, date, editor, change.text.strip()])

# 创建Excel工作簿
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Changelog")

# 写入表格标题行
for col, header in enumerate(headers):
    sheet.Range[1, col + 1].Value = header

# 填充变更记录数据
for row_idx, row_data in enumerate(rows):
    for col_idx, value in enumerate(row_data):
        sheet.Range[row_idpythonx + 2, col_idx + 1].Value = value

# 应用样式模板
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading1  # 主标题样式
for row in range(1, sheet.Rows.Count):
    sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent1_40  # 交替行底色

# 自适应列宽设置
for col in range(sheet.Columns.Count):
    sheet.AutoFitColumn(col + 1)

# 输出文件并释放资源
workbook.SaveToFile("output/XMLToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()

为了演示清晰,以上代码直接基于已知的字段结构进行提取。在实际项目中,建议根据具体的数据格式动态处理字段,或增加容错逻辑以应对结构变动。

XML文件:

使用Python将JSON,XML和YAML数据写入Excel文件

输出的Excel文件:

使用Python将JSON,XML和YAML数据写入Excel文件

用Python导入YAML数据到Excel工作表

YAML是一种简洁易读的配置文件格式,常用于DevOps和项目配置。虽然YAML通常不用于存储表格型数据,但很多结构化配置可转换成Excel表做审阅、记录或共享等,在这些实际场景中非常实用。我们可以使用Python标准库中的yaml组件处理YAML文件数据,然后将其导入Excel文件中。

代码示例:

# 导入YAML处理库和Excel操作库
import yaml
from spire.xls import Workbook, FileFormat, BuiltInStyles

# 加载CI/CD流水线配置文件
with open("CI CD Pipeline Configuration.yaml", "r", encoding="utf-8") as f:
    yaml_data = yaml.safe_load(f)  # 安全解析YAML内容

# 定义流水线分析报表列结构
headers = ["stage", "command", "output_file", "coverage", "environment"]
rows = []

# 展开流水线阶段的多维数据
for stage in yaml_data["stages"]:
    # 提取阶段基础信息
    name = stage.get("name", "")
    commands = stage.get("commands", [])
    coverage = str(stage.get("coverage", ""))  # 数值转字符串
    environment = stage.get("environment", "")
    outputs = stage.get("artifacts", []) or [""]  # 处理空输出文件情况

    # 按命令展开明细行
    for i, cmd in enumerate(commands):
        # 合并数据时保持指标数据首行展示
        row = [
            name,
            cmd,
            outputs[i] if i < len(outputs) else "",  # 匹配命令与产出文件
            coverage if i == 0 else "",  # 覆盖率仅首行保留
            environment if i == 0 else ""  # 环境信息仅首行http://www.chinasem.cn保留
        ]
        rows.append(row)

# 创建报表工作簿
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Pipeline")

# 构建表头结构
for col, header in enumerate(headers):
    sheet.Range[1, col + 1].Value = header

# 填充动态生成的流水线数据
for row_idx, row_data in enumerate(rows):
    for col_idx, value in enumerate(row_data):
        sheet.Range[row_idx + 2, col_idx + 1].Value = str(value)  # 强制转为字符串格式

# 应用阶梯式样式方案
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading4  # 深色渐变标题
for row in range(1, sheet.Rows.Count):
    sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent2_40  # 浅色交替行背景

# 优化列显示宽度
for col in range(sheet.Columns.Count):
    sheet.AutoFitColumn(col + 1)

# 持久化报表文件
workbook.SaveToFile("output/YAMLToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()

为了演示清晰,以上代码直接基于已知的字段结构进行提取。在实际项目中,建议根据具体的数据格式动态处理字段,或增加容错逻辑以应对结构变动。

YAML文件:

使用Python将JSON,XML和YAML数据写入Excel文件

输出的Excel文件:

使用Python将JSON,XML和YAML数据写入Excel文件

本文演示如何导入数据到Excel文件,包括JSON、XML和YAML数据到Excel工作表的导入,提供步骤介绍及代码示例。

到此这篇关于使用Python将JSON,XML和YAML数据写入Excel文件的文章就介绍到这了,更多相关Python数据写入Excel内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于使用Python将JSON,XML和YAML数据写入Excel文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1154192

相关文章

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用SpringBoot+InfluxDB实现高效数据存储与查询

《使用SpringBoot+InfluxDB实现高效数据存储与查询》InfluxDB是一个开源的时间序列数据库,特别适合处理带有时间戳的监控数据、指标数据等,下面详细介绍如何在SpringBoot项目... 目录1、项目介绍2、 InfluxDB 介绍3、Spring Boot 配置 InfluxDB4、I

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

使用Python实现无损放大图片功能

《使用Python实现无损放大图片功能》本文介绍了如何使用Python的Pillow库进行无损图片放大,区分了JPEG和PNG格式在放大过程中的特点,并给出了示例代码,JPEG格式可能受压缩影响,需先... 目录一、什么是无损放大?二、实现方法步骤1:读取图片步骤2:无损放大图片步骤3:保存图片三、示php

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

使用Python实现一个简易计算器的新手指南

《使用Python实现一个简易计算器的新手指南》计算器是编程入门的经典项目,它涵盖了变量、输入输出、条件判断等核心编程概念,通过这个小项目,可以快速掌握Python的基础语法,并为后续更复杂的项目打下... 目录准备工作基础概念解析分步实现计算器第一步:获取用户输入第二步:实现基本运算第三步:显示计算结果进

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Python利用PySpark和Kafka实现流处理引擎构建指南

《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐