最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python將JSON,XML和YAML數(shù)據(jù)寫入Excel文件

 更新時(shí)間:2025年04月11日 14:45:15   作者:Eiceblue  
JSON、XML和YAML作為主流結(jié)構(gòu)化數(shù)據(jù)格式,因其層次化表達(dá)能力和跨平臺(tái)兼容性,已成為系統(tǒng)間數(shù)據(jù)交換的通用載體,本文將介紹如何使用Python導(dǎo)入JSON、XML和YAML格式數(shù)據(jù)到Excel文件中,需要的可以參考下

在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的技術(shù)生態(tài)中,JSON、XML和YAML作為主流結(jié)構(gòu)化數(shù)據(jù)格式,因其層次化表達(dá)能力和跨平臺(tái)兼容性,已成為系統(tǒng)間數(shù)據(jù)交換的通用載體。然而,當(dāng)需要將這類半結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)化為具備直觀可視化、動(dòng)態(tài)計(jì)算和協(xié)作共享特性的載體時(shí),Excel文件因其在商業(yè)分析、科研管理和跨部門協(xié)作中的不可替代性,成為數(shù)據(jù)落地的終極界面。通過Python實(shí)現(xiàn)這一轉(zhuǎn)換過程,不僅能突破不同數(shù)據(jù)范式間的語義鴻溝,更可構(gòu)建自動(dòng)化數(shù)據(jù)管道,在保留原始數(shù)據(jù)完整性的同時(shí),賦予其動(dòng)態(tài)排序、公式計(jì)算和數(shù)據(jù)透視等增值能力。本文將介紹如何使用Python導(dǎo)入JSON、XML和YAML格式數(shù)據(jù)到Excel文件中。

本文所使用的數(shù)據(jù)寫入方法需要用到Free Spire.XLS for Python,PyPI:pip install spire.xls.free

如何使用Python寫入數(shù)據(jù)到Excel工作表

我們可以使用Free Spire.XLS for Python提供的類、屬性和方法來創(chuàng)建或載入Excel文件,并處理數(shù)據(jù)到單元格的寫入以及工作表格式設(shè)置等操作。以下是操作步驟示例:

  • 創(chuàng)建Workbook實(shí)例以新建Excel工作簿(新建的工作簿會(huì)有三個(gè)默認(rèn)工作表),或使用Workbook.LoadFromFile()方法載入已有工作簿。
  • 使用Workbook.Worksheets.get_Item()方法獲取指定工作表,或使用Workbook.Worksheets.Add(sheetName: str)方法直接新建工作表。
  • 通過json、xml.etree.ElementTree和yaml組件讀取相應(yīng)數(shù)據(jù)。
  • 使用Worksheet.Range.get_Item()方法獲取指定單元格為CellRange對(duì)象,并使用CellRange.Value屬性講數(shù)據(jù)寫入單元格中。
  • 使用CellRange.BuiltInStyle、CellRange.ApplyStyle()、Worksheet.AutoFitColumn()等屬性和方法,對(duì)工作表及單元格格式進(jìn)行設(shè)置。
  • 使用Workbook.SaveToFile()方法保存Excel工作簿到文件。

用Python導(dǎo)入JSON數(shù)據(jù)到Excel工作表

JSON是一種輕量級(jí)數(shù)據(jù)交換格式,常用于Web應(yīng)用中前后端數(shù)據(jù)傳輸。在Python中,我們可以使用標(biāo)準(zhǔn)庫中的json內(nèi)置組件來解析JSON文件,并提取其中數(shù)據(jù)。提取到數(shù)據(jù)之后,我們可以使用Spire.XLS for Python將其寫入Excel工作表并自定義格式,完成JSON數(shù)據(jù)到Excel文件的導(dǎo)入。

代碼示例:

# 導(dǎo)入所需庫
from spire.xls import Workbook, FileFormat, BuiltInStyles
import json

# 讀取并解析JSON訂單數(shù)據(jù)
with open("E-Commerce Order Data.json", "r", encoding="utf-8") as f:
    jsonData = json.load(f)

# 定義Excel列標(biāo)題
headers = ["order_id", "customer", "order_date", "status", "total", "product", "quantity", "price"]

# 將嵌套的JSON結(jié)構(gòu)轉(zhuǎn)換為扁平化表格數(shù)據(jù)
rows = []
for order in jsonData:
    for item in order["items"]:
        # 合并訂單主數(shù)據(jù)和商品明細(xì)數(shù)據(jù)
        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)

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

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

# 寫入數(shù)據(jù)行內(nèi)容
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

# 設(shè)置表格樣式
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading2  # 標(biāo)題行樣式
for row in range(1, sheet.Rows.Count):
    sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent2_40  # 數(shù)據(jù)行樣式

# 自動(dòng)調(diào)整列寬
for col in range(sheet.Columns.Count):
    sheet.AutoFitColumn(col + 1)

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

為了演示清晰,以上代碼直接基于已知的字段結(jié)構(gòu)進(jìn)行提取。在實(shí)際項(xiàng)目中,建議根據(jù)具體的數(shù)據(jù)格式動(dòng)態(tài)處理字段,或增加容錯(cuò)邏輯以應(yīng)對(duì)結(jié)構(gòu)變動(dòng)。

JSON文件:

輸出Excel文件:

用Python導(dǎo)入XML數(shù)據(jù)到Excel工作表

XML是一種標(biāo)記語言,適合表示結(jié)構(gòu)復(fù)雜的數(shù)據(jù),支持豐富的功能(如屬性、注釋)。同樣,Python標(biāo)準(zhǔn)庫也提供了xml.etree.ElementTree組件,可以幫助我們提取XML文件中的數(shù)據(jù)。我們可以使用該組件搭配Free Spire.XLS for Python來實(shí)現(xiàn)導(dǎo)入XML數(shù)據(jù)到Excel文件。

代碼示例:

# 導(dǎo)入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()

# 定義表格列標(biāo)題
headers = ["version", "date", "editor", "change"]
rows = []

# 提取并轉(zhuǎn)換XML數(shù)據(jù)結(jié)構(gòu)
for entry in root.findall("entry"):
    # 提取公共字段
    version = entry.findtext("version", "")
    date = entry.findtext("date", "")
    editor = entry.findtext("editor", "")

    # 展開多個(gè)變更條目為獨(dú)立行
    for change in entry.find("changes").findall("change"):
        rows.append([version, date, editor, change.text.strip()])

# 創(chuàng)建Excel工作簿
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Changelog")

# 寫入表格標(biāo)題行
for col, header in enumerate(headers):
    sheet.Range[1, col + 1].Value = header

# 填充變更記錄數(shù)據(jù)
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

# 應(yīng)用樣式模板
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading1  # 主標(biāo)題樣式
for row in range(1, sheet.Rows.Count):
    sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent1_40  # 交替行底色

# 自適應(yīng)列寬設(shè)置
for col in range(sheet.Columns.Count):
    sheet.AutoFitColumn(col + 1)

# 輸出文件并釋放資源
workbook.SaveToFile("output/XMLToExcel.xlsx", FileFormat.Version2016)
workbook.Dispose()

為了演示清晰,以上代碼直接基于已知的字段結(jié)構(gòu)進(jìn)行提取。在實(shí)際項(xiàng)目中,建議根據(jù)具體的數(shù)據(jù)格式動(dòng)態(tài)處理字段,或增加容錯(cuò)邏輯以應(yīng)對(duì)結(jié)構(gòu)變動(dòng)。

XML文件:

輸出的Excel文件:

用Python導(dǎo)入YAML數(shù)據(jù)到Excel工作表

YAML是一種簡(jiǎn)潔易讀的配置文件格式,常用于DevOps和項(xiàng)目配置。雖然YAML通常不用于存儲(chǔ)表格型數(shù)據(jù),但很多結(jié)構(gòu)化配置可轉(zhuǎn)換成Excel表做審閱、記錄或共享等,在這些實(shí)際場(chǎng)景中非常實(shí)用。我們可以使用Python標(biāo)準(zhǔn)庫中的yaml組件處理YAML文件數(shù)據(jù),然后將其導(dǎo)入Excel文件中。

代碼示例:

# 導(dǎo)入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內(nèi)容

# 定義流水線分析報(bào)表列結(jié)構(gòu)
headers = ["stage", "command", "output_file", "coverage", "environment"]
rows = []

# 展開流水線階段的多維數(shù)據(jù)
for stage in yaml_data["stages"]:
    # 提取階段基礎(chǔ)信息
    name = stage.get("name", "")
    commands = stage.get("commands", [])
    coverage = str(stage.get("coverage", ""))  # 數(shù)值轉(zhuǎn)字符串
    environment = stage.get("environment", "")
    outputs = stage.get("artifacts", []) or [""]  # 處理空輸出文件情況

    # 按命令展開明細(xì)行
    for i, cmd in enumerate(commands):
        # 合并數(shù)據(jù)時(shí)保持指標(biāo)數(shù)據(jù)首行展示
        row = [
            name,
            cmd,
            outputs[i] if i < len(outputs) else "",  # 匹配命令與產(chǎn)出文件
            coverage if i == 0 else "",  # 覆蓋率僅首行保留
            environment if i == 0 else ""  # 環(huán)境信息僅首行保留
        ]
        rows.append(row)

# 創(chuàng)建報(bào)表工作簿
workbook = Workbook()
workbook.Worksheets.Clear()
sheet = workbook.Worksheets.Add("Pipeline")

# 構(gòu)建表頭結(jié)構(gòu)
for col, header in enumerate(headers):
    sheet.Range[1, col + 1].Value = header

# 填充動(dòng)態(tài)生成的流水線數(shù)據(jù)
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)  # 強(qiáng)制轉(zhuǎn)為字符串格式

# 應(yīng)用階梯式樣式方案
sheet.Rows[0].BuiltInStyle = BuiltInStyles.Heading4  # 深色漸變標(biāo)題
for row in range(1, sheet.Rows.Count):
    sheet.Rows[row].BuiltInStyle = BuiltInStyles.Accent2_40  # 淺色交替行背景

# 優(yōu)化列顯示寬度
for col in range(sheet.Columns.Count):
    sheet.AutoFitColumn(col + 1)

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

為了演示清晰,以上代碼直接基于已知的字段結(jié)構(gòu)進(jìn)行提取。在實(shí)際項(xiàng)目中,建議根據(jù)具體的數(shù)據(jù)格式動(dòng)態(tài)處理字段,或增加容錯(cuò)邏輯以應(yīng)對(duì)結(jié)構(gòu)變動(dòng)。

YAML文件:

輸出的Excel文件:

本文演示如何導(dǎo)入數(shù)據(jù)到Excel文件,包括JSON、XML和YAML數(shù)據(jù)到Excel工作表的導(dǎo)入,提供步驟介紹及代碼示例。

到此這篇關(guān)于使用Python將JSON,XML和YAML數(shù)據(jù)寫入Excel文件的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)寫入Excel內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Jmeter之變量拼接方式

    Jmeter之變量拼接方式

    在Jmeter腳本中,參數(shù)值可以通過字符串和變量進(jìn)行拼接,也可以使用多個(gè)變量直接拼接,無需使用連接符,如果使用python腳本,則需要按照python的語法規(guī)則進(jìn)行拼接,在Jmeter中,帶有引號(hào)的變量可以通過${}來識(shí)別為變量,而不會(huì)被誤認(rèn)為是字符串
    2024-10-10
  • Python + Requests庫爬取動(dòng)態(tài)Ajax分頁數(shù)據(jù)的完整流程

    Python + Requests庫爬取動(dòng)態(tài)Ajax分頁數(shù)據(jù)的完整流程

    本文介紹使用Python+Requests庫爬取動(dòng)態(tài)Ajax分頁數(shù)據(jù)的完整流程,包含請(qǐng)求分析、參數(shù)模擬、翻頁邏輯實(shí)現(xiàn)、JSON解析及數(shù)據(jù)存儲(chǔ),同時(shí)提供反爬優(yōu)化策略,適用于電商、新聞等動(dòng)態(tài)加載內(nèi)容的網(wǎng)站,感興趣的朋友一起看看吧
    2025-07-07
  • python實(shí)現(xiàn)圖片加文字水印OPenCV和PIL庫

    python實(shí)現(xiàn)圖片加文字水印OPenCV和PIL庫

    本文來為大家介紹一下,使用python中的庫實(shí)現(xiàn)給圖片添加文字水印,openCV可以給圖片添加水印,如果要添加漢字水印那就要使用PIL庫
    2021-09-09
  • 一文教你如何解決Python開發(fā)總是import出錯(cuò)的問題

    一文教你如何解決Python開發(fā)總是import出錯(cuò)的問題

    經(jīng)常朋友碰到Python開發(fā)的過程中import包報(bào)錯(cuò)的問題,所以本文將和大家介紹一下可編輯安裝(Editable Install)模式,可以輕松解決import出錯(cuò)的問題,感興趣的可以了解下
    2025-05-05
  • Flask框架請(qǐng)求鉤子與request請(qǐng)求對(duì)象用法實(shí)例分析

    Flask框架請(qǐng)求鉤子與request請(qǐng)求對(duì)象用法實(shí)例分析

    這篇文章主要介紹了Flask框架請(qǐng)求鉤子與request請(qǐng)求對(duì)象用法,結(jié)合實(shí)例形式詳細(xì)分析了Flask框架請(qǐng)求鉤子與request請(qǐng)求對(duì)象相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • 使用Pycharm與conda配置Pyside環(huán)境并新建工程

    使用Pycharm與conda配置Pyside環(huán)境并新建工程

    本文主要介紹了使用Pycharm與conda配置Pyside環(huán)境并新建工程,文中通過圖文步驟介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-07-07
  • python urllib庫的使用詳解

    python urllib庫的使用詳解

    這篇文章主要介紹了python urllib庫的使用詳解,幫助大家更好的利用python學(xué)習(xí)爬蟲,感興趣的朋友可以了解下
    2021-04-04
  • Python數(shù)據(jù)可視化實(shí)踐之使用Matplotlib繪制圖表

    Python數(shù)據(jù)可視化實(shí)踐之使用Matplotlib繪制圖表

    數(shù)據(jù)可視化是數(shù)據(jù)分析的重要環(huán)節(jié),通過將數(shù)據(jù)轉(zhuǎn)化為圖形,可以更直觀地展示數(shù)據(jù)特征和規(guī)律。Python中的Matplotlib庫是一個(gè)強(qiáng)大的數(shù)據(jù)可視化工具,本文將帶您了解Matplotlib的基本使用方法,以及如何繪制常見的圖表
    2023-05-05
  • python 網(wǎng)絡(luò)編程要點(diǎn)總結(jié)

    python 網(wǎng)絡(luò)編程要點(diǎn)總結(jié)

    Python 提供了兩個(gè)級(jí)別訪問的網(wǎng)絡(luò)服務(wù):低級(jí)別的網(wǎng)絡(luò)服務(wù)支持基本的 Socket,它提供了標(biāo)準(zhǔn)的 BSD Sockets API,可以訪問底層操作系統(tǒng) Socket 接口的全部方法。高級(jí)別的網(wǎng)絡(luò)服務(wù)模塊SocketServer, 它提供了服務(wù)器中心類,可以簡(jiǎn)化網(wǎng)絡(luò)服務(wù)器的開發(fā)。下面看下該如何使用
    2021-06-06
  • 使用NumPy進(jìn)行數(shù)組數(shù)據(jù)處理的示例詳解

    使用NumPy進(jìn)行數(shù)組數(shù)據(jù)處理的示例詳解

    NumPy是Python中用于數(shù)值計(jì)算的核心包之一,它提供了大量的高效數(shù)組操作函數(shù)和數(shù)學(xué)函數(shù),可以支持多維數(shù)組和矩陣運(yùn)算。本文主要為大家介紹了NumPy進(jìn)行數(shù)組數(shù)據(jù)處理的具體方法,需要的可以參考一下
    2023-03-03

最新評(píng)論

临沂市| 怀仁县| 昆山市| 香港 | 浑源县| 和硕县| 乐东| 吉水县| 平顶山市| 富宁县| 西乡县| 宣武区| 温泉县| 得荣县| 邯郸县| 嘉峪关市| 叶城县| 始兴县| 柳州市| 英山县| 项城市| 广德县| 仪征市| 北川| 谢通门县| 毕节市| 平潭县| 昌平区| 兖州市| 兴安盟| 台南县| 安龙县| 太原市| 连州市| 襄汾县| 城口县| 大同市| 枣庄市| 壤塘县| 定州市| 临邑县|