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

Python實(shí)現(xiàn)將Json轉(zhuǎn)換為Xml與Markdown

 更新時(shí)間:2025年07月29日 09:21:22   作者:Kyln.Wu  
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)將Json轉(zhuǎn)換為Xml與Markdown格式,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解一下

Python Json轉(zhuǎn)Xml

前景提要

17:55,你正準(zhǔn)備關(guān)機(jī),老板在群里@你:“把客戶給的 test-input.json 轉(zhuǎn)成 XML,今晚接口聯(lián)調(diào)要用。”

你打開文件,瞬間頭大:嵌套的對(duì)象、數(shù)組、布爾值混成一鍋粥。手敲 <tag>?估計(jì)得加班到凌晨。

你把同事剛發(fā)你的 json_to_xml.py 往命令行一扔——

python json_to_xml.py

3 秒后,test-output.xml 靜靜躺在桌面,標(biāo)簽層級(jí)分明,連 <?xml version="1.0"?> 都寫好了。
這把“瑞士軍刀”從此常駐你的 U 盤。

代碼解析 1

通俗解釋

就像把一封英文信先翻譯成中文再讀,這一步讓 Python 能把 JSON 內(nèi)容當(dāng)積木玩。

關(guān)鍵代碼

with open("test-input.json", "r") as json_file:
    json_data = json.load(json_file)  # 把 JSON 字符串變成 Python 字典或列表

代碼解析 2

通俗解釋

JSON 像俄羅斯套娃,大盒子里還有小盒子。腳本一層層拆開:遇到盒子(對(duì)象/數(shù)組)就繼續(xù)拆,遇到糖果(字符串/數(shù)字)就貼標(biāo)簽。

關(guān)鍵代碼

def json_to_xml(json_obj, line_padding=""):
    result_list = []
    if isinstance(json_obj, dict):
        for key, value in json_obj.items():
            result_list.append(f"{line_padding}<{key}>")
            result_list.append(json_to_xml(value, line_padding + "  "))
            result_list.append(f"{line_padding}</{key}>")
    elif isinstance(json_obj, list):
        for element in json_obj:
            result_list.append(json_to_xml(element, line_padding))
    else:
        result_list.append(f"{line_padding}{json_obj}")
    return "\n".join(result_list)

代碼解析 3

通俗解釋

拆到最底層時(shí),腳本自動(dòng)把鍵名變成標(biāo)簽名,把值放進(jìn)標(biāo)簽中間,同時(shí)用兩個(gè)空格縮進(jìn),讓 XML 像樓梯一樣好看。

關(guān)鍵代碼

# 示例輸出片段
"""
<person>
  <name>Alice</name>
  <age>30</age>
</person>
"""

代碼解析 4

通俗解釋

就像把整理好的筆記放進(jìn)文件夾,這一步把字符串一次性寫進(jìn)文件,順手加上 XML 文件頭。

關(guān)鍵代碼

xml_data_with_header = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + xml_data
with open("test-output.xml", "w") as file:
    file.write(xml_data_with_header)

擴(kuò)展點(diǎn)子

1. 批量處理整個(gè)文件夾

給腳本加一個(gè)循環(huán),讓它一次吃下一整碗 JSON。

import glob
for json_path in glob.glob("*.json"):
    with open(json_path, "r") as f:
        data = json.load(f)
    xml_str = json_to_xml(data)
    save_xml_file(xml_str, json_path.replace(".json", ".xml"))

2. 30 秒套個(gè)圖形界面

tkinter 做一個(gè)小窗口,拖文件就能轉(zhuǎn)。

import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()  # 只彈出文件選擇框
input_path = filedialog.askopenfilename(title="選 JSON")
with open(input_path, "r") as f:
    xml = json_to_xml(json.load(f))
save_xml_file(xml, input_path.replace(".json", ".xml"))

總結(jié)

你剛體驗(yàn)了一把“零門檻”自動(dòng)化:把任何 JSON 文件扔給腳本,3 秒就能收獲排版漂亮的 XML。它不需要安裝額外庫,只用系統(tǒng)自帶 Python;加上兩條簡(jiǎn)單擴(kuò)展,還能批量、還能點(diǎn)點(diǎn)鼠標(biāo)。下次再有人甩來配置,你就笑瞇瞇地雙擊腳本——下班前就能回家追劇。

Python Json轉(zhuǎn)Markdown

周五 18:00,你正準(zhǔn)備關(guān)機(jī),老板甩來一個(gè) 200 行的 config.json:“下班前把這份配置整理成文檔發(fā)我。”

你打開文件,瞬間眼花:嵌套的對(duì)象、數(shù)組、布爾值混成一團(tuán)。手敲 Markdown?估計(jì)得加班到半夜。

這時(shí),你把今天剛拿到的小腳本 script.py 往命令行一扔——

python script.py -i config.json -o config.md

3 秒后,config.md 靜靜躺在桌面:標(biāo)題、縮進(jìn)、代碼塊全排好,老板直夸“專業(yè)”。

這把“瑞士軍刀”從此常駐你的工具箱。

代碼解析 1

通俗解釋

就像把一封英文信先翻譯成中文再讀,這一步讓 Python 能“聽懂” JSON 的內(nèi)容。

關(guān)鍵代碼

def load_json(file):
    try:
        with open(file, 'r') as f:
            data = f.read()
        return json.loads(data)  # 把 JSON 字符串變成 Python 字典或列表
    except:
        print("[ERROR] 文件必須是合法的 json")

代碼解析 2

通俗解釋

JSON 像俄羅斯套娃,大盒子里還有小盒子。腳本一層層拆開,遇到盒子(對(duì)象/數(shù)組)就繼續(xù)拆,遇到糖果(字符串/數(shù)字)就貼標(biāo)簽。

關(guān)鍵代碼

def parse_json(json_block, depth, options):
    if isinstance(json_block, dict):
        parse_dict(json_block, depth, options)
    if isinstance(json_block, list):
        parse_list(json_block, depth, options)

代碼解析 3

通俗解釋

拆到最后,給每個(gè)“糖果”寫上名字和味道:age: 18。腳本自動(dòng)在前面加 - 和反引號(hào),讓 Markdown 格式一步到位。

關(guān)鍵代碼

def add_value(key, value, depth):
    chain = tab * (bool(depth - 1)) + list_tag + \
            str(key) + ": " + inline_code + str(value) + inline_code + "\n"
    global markdown
    markdown += chain

代碼解析 4

通俗解釋

就像把整理好的筆記放進(jìn)文件夾,這一步把生成的 Markdown 字符串一次性寫進(jìn)指定文件,完事收工。

關(guān)鍵代碼

def write_out(markdown, output_file):
    with open(output_file, 'w+') as f:
        f.write(markdown)

擴(kuò)展點(diǎn)子

1. 批量處理整個(gè)文件夾

給腳本加一個(gè) -b 參數(shù),讓它一次吃下一整碗 JSON。

# 在 main() 里加幾行
import glob
if args.batch:
    for json_path in glob.glob('*.json'):
        convert(json_path, json_path[:-4] + 'md', options)

2. 30 秒套個(gè)圖形界面

用 tkinter 做一個(gè)小窗口,拖文件就能轉(zhuǎn)。

import tkinter as tk
from tkinter import filedialog

???????root = tk.Tk()
root.withdraw()  # 只彈出文件選擇框
input_path = filedialog.askopenfilename(title="選 JSON")
convert(input_path, input_path[:-4] + 'md', {'ignore': '', 'keep': ''})

總結(jié)

你剛體驗(yàn)了一把“零門檻”自動(dòng)化:把任何 JSON 文件扔給腳本,3 秒就能收獲排版漂亮的 Markdown。它不需要安裝額外庫,只用系統(tǒng)自帶 Python;加上兩條簡(jiǎn)單擴(kuò)展,還能批量、還能點(diǎn)點(diǎn)鼠標(biāo)。下次再有人甩來配置,你就笑瞇瞇地雙擊腳本——下班前就能回家追番。

到此這篇關(guān)于Python實(shí)現(xiàn)將Json轉(zhuǎn)換為Xml與Markdown的文章就介紹到這了,更多相關(guān)Python Json格式轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 只用Python就可以制作的簡(jiǎn)單詞云

    只用Python就可以制作的簡(jiǎn)單詞云

    今天教大家如何只用Python制作簡(jiǎn)單詞云,文中有非常詳細(xì)的介紹及代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • Django URL參數(shù)Template反向解析

    Django URL參數(shù)Template反向解析

    這篇文章主要介紹了Django URL參數(shù)Template反向解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 教你用pytorch訓(xùn)練五子棋ai示例代碼

    教你用pytorch訓(xùn)練五子棋ai示例代碼

    這篇文章主要介紹了五個(gè)與五子棋相關(guān)的Python文件,包括游戲邏輯、神經(jīng)網(wǎng)絡(luò)模型、訓(xùn)練代碼以及玩家對(duì)戰(zhàn)代碼,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • Python實(shí)戰(zhàn)小游戲飛機(jī)大戰(zhàn)詳解

    Python實(shí)戰(zhàn)小游戲飛機(jī)大戰(zhàn)詳解

    飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • python 獲得任意路徑下的文件及其根目錄的方法

    python 獲得任意路徑下的文件及其根目錄的方法

    今天小編就為大家分享一篇python 獲得任意路徑下的文件及其根目錄的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • 使用Scrapy爬取動(dòng)態(tài)數(shù)據(jù)

    使用Scrapy爬取動(dòng)態(tài)數(shù)據(jù)

    今天小編就為大家分享一篇關(guān)于使用Scrapy爬取動(dòng)態(tài)數(shù)據(jù)的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • 基于Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    基于Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    這篇文章主要為大家詳細(xì)介紹了Python如何通過WechatPCAPI來實(shí)現(xiàn)微信自動(dòng)回復(fù)的功能,文中的示例代碼講解詳細(xì),快跟隨小編一起動(dòng)手嘗試一下
    2022-06-06
  • Python自動(dòng)化操作Excel生成專業(yè)數(shù)據(jù)透視表的實(shí)戰(zhàn)指南

    Python自動(dòng)化操作Excel生成專業(yè)數(shù)據(jù)透視表的實(shí)戰(zhàn)指南

    在數(shù)據(jù)分析的廣闊領(lǐng)域中,數(shù)據(jù)透視表無疑是處理和理解海量數(shù)據(jù)的強(qiáng)大工具,本文將深入探討如何利用Python庫,實(shí)現(xiàn)Excel數(shù)據(jù)透視表的自動(dòng)化生成、配置與格式化,感興趣的可以了解下
    2025-12-12
  • python+opencv實(shí)現(xiàn)動(dòng)態(tài)物體追蹤

    python+opencv實(shí)現(xiàn)動(dòng)態(tài)物體追蹤

    這篇文章主要為大家詳細(xì)介紹了python+opencv實(shí)現(xiàn)動(dòng)態(tài)物體的追蹤,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Python GUI編程學(xué)習(xí)筆記之tkinter控件的介紹及基本使用方法詳解

    Python GUI編程學(xué)習(xí)筆記之tkinter控件的介紹及基本使用方法詳解

    這篇文章主要介紹了Python GUI編程學(xué)習(xí)筆記之tkinter控件的介紹及基本使用方法,結(jié)合實(shí)例形式詳細(xì)分析了Python GUI編程中tkinter控件的原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03

最新評(píng)論

翼城县| 若羌县| 绥德县| 静海县| 海原县| 赫章县| 铅山县| 沙田区| 民县| 鹿邑县| 吉木乃县| 县级市| 休宁县| 高唐县| 青岛市| 郧西县| 榆中县| 临西县| 酉阳| 德钦县| 侯马市| 饶河县| 焦作市| 凤凰县| 寿宁县| 固安县| 巴马| 镇康县| 安宁市| 邵武市| 那坡县| 潮州市| 临安市| 女性| 昌吉市| 吉水县| 伊宁市| 德兴市| 静乐县| 阿城市| 定南县|