【💊 Python的解憂錦囊】如何將dict轉成json並儲存

更新於 2024/10/17閱讀時間約 2 分鐘
raw-image


關於json的資料交換格式請參考「【程式語言 - Javascript】輕量資料格式 JSON」, 我們常常會在使用套件的過程中發現回傳值的型態都會有「dict」的蹤跡, 為什麼呢? 因為動態、彈性、靈活, 不需要預先定義類別來明確指定每個欄位的內容, 但缺點就是文件必須寫清楚內容物是哪些, 否則使用起來會相當痛苦, 必須不斷的print、run、print、run…。

那我們今天的主軸就在於說如何將這樣的「dict」資料格式轉換成「json」檔並儲存, 因為json檔最貼近於「dict」的資料結構, 皆由「key、value」組合而成, 因此轉換通常較為容易。

首先我們可以引入系統內建的json模組。

import json

接著我們可以設計一個「dict」資料型態的內容。

my_dict = {"name": "John", "age": 30, "city": "New York"}

接著我們利用「json.dumps(…)」的方式將字典檔序列化成json, 這邊我們不妨參閱一下官方網站「https://docs.python.org/3/library/json.html#json.dumps」, 它除了單純的序列化之外還能夠增加N個空白進行縮排, 以下例子我們試著展示一下有縮排與沒有縮排的差異。

tmp = json.dumps(my_dict)

print(tmp)

json_data = json.dumps(my_dict, indent=4)

print(json_data)
raw-image


相信看到這邊, 對於json序列化的部份已經具有一定的基礎認識了, 那麼接下來我們只要將其輸出成檔案就能夠以json檔的格式進行檔案傳輸。

with open("data.json", "w") as json_file:
json_file.write(json_data)
raw-image
raw-image


結語

json資料交換格式在現今的軟體系統中已經成為一種基本的格式了, 有了它, 對於服務間的溝通會更加的便利, 我們就想像成不同國家之間的共同語言或者識別, 而json就是擔任著這樣的角色, 因此我們在這邊就分享常常會遇到的dict轉json的方法,期望對於需要的朋友能夠幫助到。


學習軟體開發的路上常常苦於網路資訊爆炸嗎? 教學何其多,但卻遇到無法明確選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您業界開發重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。

avatar-img
116會員
261內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
「functools.partial」是Python中的一個標準函式庫,它可以讓我們基於既有的函式封裝成多種不同用途的函式,就如同上圖所示,我們設計了一個乘法(multiply)的函數,使用了partial讓函數的參數「c」固定下來依據用途不同變化出「double」、「triple」,這樣一來我
最近正好在研究「silero-vad」這套工具, 但根據官方教學,預設的載入方式會從網路上進行下載模型的動作: model, utils = torch.hub.load(repo_or_dir='snakers4/silero-vad',
我們在「【💎Python 軍火庫 - devpi】pip install…等太久了嗎🤔? 您需要來點緩存機制」有介紹過pypi套件緩存的架設方式, 那架設好了之後, 我們在下載的部份會有一層快取及代理的前哨站, 但假如我們的套件不在pypi平台時怎麼辦呢? 就像torch的套件就必須仰賴外部的來
相信玩過Python一陣子的朋友應該曾經都遇到過套件版本衝突的問題吧…, 這實在是很惱人, 但如果我們能夠快速的檢驗我們所安裝的套件是否如我們所預期的版本, 該有多好, 如此一來能夠讓自己更加安心一些, 那麼今天將提供兩種方法讓我們來檢查一番。 列出所有套件及版本 簡單且暴力。 pip lis
當您看到這樣的訊息時: TypeError: exceptions must derive from BaseException 可能會很困惑究竟是什麼原因導致這樣的錯誤發生, 那本章節將會告訴您以下: 怎麼發生的? 怎麼解決? 我們應該用Exception或BaseException嗎
我們在「【Python 軍火庫🧨 - tqdm】讓我們為工作加上進度條吧」介紹了tqdm進度條的基本用法, 基本上的使用案例都沒什麼問題, 通常也都是以「數量」為單位進行進度的回報, 但假設我們今天處理的任務是關於音訊的部份呢? 這時候更新的單位就需要從「數量」轉為「時間」了, 那tqdm有提供這
「functools.partial」是Python中的一個標準函式庫,它可以讓我們基於既有的函式封裝成多種不同用途的函式,就如同上圖所示,我們設計了一個乘法(multiply)的函數,使用了partial讓函數的參數「c」固定下來依據用途不同變化出「double」、「triple」,這樣一來我
最近正好在研究「silero-vad」這套工具, 但根據官方教學,預設的載入方式會從網路上進行下載模型的動作: model, utils = torch.hub.load(repo_or_dir='snakers4/silero-vad',
我們在「【💎Python 軍火庫 - devpi】pip install…等太久了嗎🤔? 您需要來點緩存機制」有介紹過pypi套件緩存的架設方式, 那架設好了之後, 我們在下載的部份會有一層快取及代理的前哨站, 但假如我們的套件不在pypi平台時怎麼辦呢? 就像torch的套件就必須仰賴外部的來
相信玩過Python一陣子的朋友應該曾經都遇到過套件版本衝突的問題吧…, 這實在是很惱人, 但如果我們能夠快速的檢驗我們所安裝的套件是否如我們所預期的版本, 該有多好, 如此一來能夠讓自己更加安心一些, 那麼今天將提供兩種方法讓我們來檢查一番。 列出所有套件及版本 簡單且暴力。 pip lis
當您看到這樣的訊息時: TypeError: exceptions must derive from BaseException 可能會很困惑究竟是什麼原因導致這樣的錯誤發生, 那本章節將會告訴您以下: 怎麼發生的? 怎麼解決? 我們應該用Exception或BaseException嗎
我們在「【Python 軍火庫🧨 - tqdm】讓我們為工作加上進度條吧」介紹了tqdm進度條的基本用法, 基本上的使用案例都沒什麼問題, 通常也都是以「數量」為單位進行進度的回報, 但假設我們今天處理的任務是關於音訊的部份呢? 這時候更新的單位就需要從「數量」轉為「時間」了, 那tqdm有提供這
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
MinIO 是一個高性能的物件存儲系統,設計用於大規模的數據存儲需求, 甚至是各種非結構化數據也都能往這邊儲存, 也支持群集擴展, 非常適合正在尋找儲存方案的朋友們。 我們在「【💎 Message Queue - Kafka 案例篇】如何將檔案流上傳到minio - 完整檔案 」介紹了如
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
我們在「【🔒 Python 先修班】👆 打造友善的使用者互動CLI介面」有介紹Python的Click命令列參數設計介面的方式, 那我們除了設計出介面提供使用者互動之外, 有時候也需要一點驗證機制, 畢竟我們心裡都清楚「garbage in, garbage out」的後果, 為了減少這種狀
Thumbnail
撰寫Python的朋友都知道multithread/multiprocess能為我們帶來效能的改進,減少硬體資源的閒置,但在撰寫的過程中常常會發現到我們所設計的工作池模式會需要將「待辦清單」的工作項目當成參數傳遞進去執行, 除了「待辦清單」之外, 其餘的參數基本上都是固定的, 基於這樣的需求之下
Thumbnail
我們在「【💊 Python的解憂錦囊】如何將dict轉成json並儲存」有介紹過如何將dict型態的資料轉換成json,除了json之外, 另一個耳熟能詳的資料交換格式就是csv了, 我們常常會將csv讀進來, 並使用預先設計的@dataclass來存放, 如此一來實際運行時, 更能夠貼近於我
Thumbnail
我們將探索函式的定義和調用,這是程式設計中非常重要且強大的概念,它可以將大型程式切割成小的、可重複使用的函式。讓我們一起來了解吧!函式的定義、呼叫和返回值是學習函式的核心。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
在本篇Python學習筆記中,我們探討了字典的建立與存取,以及常用方法,字典是一種強大的資料型態,透過key和value的對應關係存儲和取得資料,我們學會了建立字典、存取資料、新增/修改/刪除項目,以及取得key和value的方法,字典是Python中不可或缺的工具!
Thumbnail
我們探討了while迴圈的使用,不同於for迴圈,while迴圈以條件式判斷為基礎,而非限定重複次數。我們介紹了使用break語句強制結束迴圈,以及使用continue語句跳過特定程式碼並返回迴圈開頭,同時,我們提及了無窮迴圈的概念,強調了在迴圈中必須更改迴圈變數的值,以避免無窮迴圈的發生。
Thumbnail
經濟是國家的命脈,社稷重點無可厚非,國際情勢不好、經濟危機出現時,國家資源救市,穩定法人、投資人信心,維持正常的金融機轉,讓國家度過危機,👍值得嘉許,只是這次國安基金護盤的故事,讓人百般尋味。 台股去年創下18650破紀錄新高,隨著國際局勢一起回檔,國安基金決定進場護盤: 第一:當時股市萬八,不是
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
MinIO 是一個高性能的物件存儲系統,設計用於大規模的數據存儲需求, 甚至是各種非結構化數據也都能往這邊儲存, 也支持群集擴展, 非常適合正在尋找儲存方案的朋友們。 我們在「【💎 Message Queue - Kafka 案例篇】如何將檔案流上傳到minio - 完整檔案 」介紹了如
Thumbnail
當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
我們在「【🔒 Python 先修班】👆 打造友善的使用者互動CLI介面」有介紹Python的Click命令列參數設計介面的方式, 那我們除了設計出介面提供使用者互動之外, 有時候也需要一點驗證機制, 畢竟我們心裡都清楚「garbage in, garbage out」的後果, 為了減少這種狀
Thumbnail
撰寫Python的朋友都知道multithread/multiprocess能為我們帶來效能的改進,減少硬體資源的閒置,但在撰寫的過程中常常會發現到我們所設計的工作池模式會需要將「待辦清單」的工作項目當成參數傳遞進去執行, 除了「待辦清單」之外, 其餘的參數基本上都是固定的, 基於這樣的需求之下
Thumbnail
我們在「【💊 Python的解憂錦囊】如何將dict轉成json並儲存」有介紹過如何將dict型態的資料轉換成json,除了json之外, 另一個耳熟能詳的資料交換格式就是csv了, 我們常常會將csv讀進來, 並使用預先設計的@dataclass來存放, 如此一來實際運行時, 更能夠貼近於我
Thumbnail
我們將探索函式的定義和調用,這是程式設計中非常重要且強大的概念,它可以將大型程式切割成小的、可重複使用的函式。讓我們一起來了解吧!函式的定義、呼叫和返回值是學習函式的核心。
Thumbnail
探索Python學習筆記中列表的建立、存取和常用方法。從使用中括號定義列表到了解索引、新增、刪除、修改等操作,並介紹append、remove、count等常用方法。
Thumbnail
在本篇Python學習筆記中,我們探討了字典的建立與存取,以及常用方法,字典是一種強大的資料型態,透過key和value的對應關係存儲和取得資料,我們學會了建立字典、存取資料、新增/修改/刪除項目,以及取得key和value的方法,字典是Python中不可或缺的工具!
Thumbnail
我們探討了while迴圈的使用,不同於for迴圈,while迴圈以條件式判斷為基礎,而非限定重複次數。我們介紹了使用break語句強制結束迴圈,以及使用continue語句跳過特定程式碼並返回迴圈開頭,同時,我們提及了無窮迴圈的概念,強調了在迴圈中必須更改迴圈變數的值,以避免無窮迴圈的發生。
Thumbnail
經濟是國家的命脈,社稷重點無可厚非,國際情勢不好、經濟危機出現時,國家資源救市,穩定法人、投資人信心,維持正常的金融機轉,讓國家度過危機,👍值得嘉許,只是這次國安基金護盤的故事,讓人百般尋味。 台股去年創下18650破紀錄新高,隨著國際局勢一起回檔,國安基金決定進場護盤: 第一:當時股市萬八,不是