讀檔(六):解析 JSON 檔與巢狀資料結構
前面幾篇我們學會了如何用 Python 讀取 .txt 與 .csv 檔案,
知道了文字資料與表格資料的處理方法。
但在 AI、資料分析、網站開發、或串接 API(應用程式介面)時,
最常遇到的檔案格式其實是—— .json。
今天就讓我們一起學習,
如何用 Python 讀取、理解並操作這種「巢狀結構資料」吧!🌳
什麼是 JSON?
JSON(JavaScript Object Notation)是一種用來儲存與交換資料的格式。
它長得有點像 Python 的 Dictionary(字典),
也常被用在網路 API、AI 模型設定檔、甚至各種應用程式的資料儲存中。
看起來像這樣👇
{
“course”: “stanCode SC001”,
“students”: [
{“name”: “Jerry”, “score”: 95},
{“name”: “Sally”, “score”: 88},
{“name”: “Momo”, “score”: 100}
],
“average”: 94.3
}
這是不是很像一個 Python 的 dict 裡面還包著 list?
這就是我們所說的「巢狀資料結構」!
JSON 與 Python 的關係
JSON 格式其實和 Python 的資料型態幾乎一模一樣:
| JSON 型態 | Python 對應型態 |
|---|---|
| object | dict(字典) |
| array | list(串列) |
| string | str(字串) |
| number | int / float(數字) |
| boolean | bool(布林值) |
| null | None |
所以 Python 讀取 JSON 檔後,就能直接把資料變成字典或串列使用,非常方便!
如何讀取 JSON 檔
Python 內建一個 json 模組,
只要幾行程式,就能輕鬆讀出 JSON 檔案的內容👇
import json
with open(‘data.json’, ‘r’) as f:
data = json.load(f)
print(data)
輸出結果:
{ ‘course’: ‘stanCode SC001’,
‘students’: [{‘name’: ‘Jerry’, ‘score’: 95},
{‘name’: ‘Sally’, ‘score’: 88},
{‘name’: ‘Momo’, ‘score’: 100}],
‘average’: 94.3 }
這時候 data 已經是一個 Python 字典 (dict),
我們可以像平常操作變數一樣直接存取:
print(data[‘course’])
# 取得課程名稱
print(data[‘students’][0])
# 取得第一位學生的資料
print(data[‘students’][0][‘name’])
# 取得學生姓名
輸出結果:
stanCode SC001
{‘name’: ‘Jerry’, ‘score’: 95}
Jerry
小比喻
| 格式 | 比喻 | 特性 |
|---|---|---|
.txt |
📒 筆記:一段段純文字 | 適合記錄文字內容 |
.csv |
📊 表格:整齊有欄、有列 | 適合儲存數據 |
.json |
🧩 樹狀資料夾:一層包一層 | 適合儲存複雜、結構化資料 |
JSON 就像一個層層分類的資料夾,
裡面可能還有小資料夾(list)或檔案(dict),
非常適合用來描述「一個東西裡面有很多小東西」的資料。
stanCode標準程式教育機構-你也值得更好的教育
Facebook|https://www.facebook.com/stancode.tw
Instagram|https://www.instagram.com/stancode_tw/
YouTube|https://www.youtube.com/@stancode7228/videos
Website|https://www.stancode.tw/
TikTok|https://www.tiktok.com/@standardcoding
