• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Python 讀取、產生 JSON 格式資料教學與範例

介紹如何在 Python 中使用內建的 json 模組,讀取、解析、產生與寫入 JSON 格式資料。

讀取 JSON 檔案

假設我們有一個 JSON 檔案 data.json,其內容如下:

{
  "name": "Jason",
  "age": 21,
  "skill": ["Python", "C/C++"],
  "married": false
}

如果要在 Python 中讀取 data.json 這個 JSON 檔案,可以使用 Python 內建 json 模組中的 load() 函數:

import json

# 開啟 JSON 檔案
with open("data.json") as f:

    # 讀取 JSON 檔案
    p = json.load(f)

    # 查看整個 JSON 資料解析後的結果
    print("p =", p)

    # 取得 name 的值
    print("name =", p["name"])

    # 取得 skill 的值
    print("skill =", p["skill"])
p = {'name': 'Jason', 'age': 21, 'skill': ['Python', 'C/C++'], 'married': False}
name = Jason
skill = ['Python', 'C/C++']

load() 函數預設會使用 json.JSONDecoder() 依照以下的對應方式將 JSON 資料轉為 Python 內部的資料格式:

原始 JSON 類型 轉為 Python 的類型
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None

解析 JSON 字串資料

如果在 Python 中要直接解析字串中的 JSON 資料,可以使用 json 模組的 loads() 函數:

import json

# JSON 字串資料
jsonStr = '{"name": "Jason", "age": 21, "skill": ["Python", "C/C++"], "married": false}'

# 解析 JSON 字串資料
p = json.loads(jsonStr)

# 查看整個 JSON 資料解析後的結果
print("p =", p)

# 取得 name 的值
print("name =", p["name"])

# 取得 skill 的值
print("skill =", p["skill"])
p = {'name': 'Jason', 'age': 21, 'skill': ['Python', 'C/C++'], 'married': False}
name = Jason
skill = ['Python', 'C/C++']

loads() 函數的效果跟 load() 函數相同,只不過 loads 的資料來源是字串,而 load() 是從檔案讀取資料。

寫入 JSON 檔案

若要將 Python 中的各種資料轉為 JSON 格式並儲存至 JSON 檔案中,可以使用 dump() 函數:

import json

# Python 的 dict 類型資料
myDict = {
    "name": "Jason",
    "age": 21,
    "skill": ["Python", "C/C++"],
    "married": False
}

# 將 Python 資料轉為 JSON 格式,儲存至 output.json 檔案
with open("output.json", "w") as f:
    json.dump(myDict, f, indent = 4)

這裡產生的 output.json 檔案內容為:

{
    "name": "Jason",
    "age": 21,
    "skill": [
        "Python",
        "C/C++"
    ],
    "married": false
}

dump() 函數預設會使用 json.JSONEncoder() 依照以下的對應方式將 Python 內部的資料轉為 JSON 格式的資料:

原始 Python 類型 轉為 JSON 的類型
dict object
list, tuple array
str string
int, float, int- & float-derived Enums number
True true
False false
None null

轉為 JSON 字串資料

若要將 Python 中的各種資料轉為 JSON 格式的字串,可以改用 dumps() 函數:

import json

# Python 的 dict 類型資料
myDict = {
    "name": "Jason",
    "age": 21,
    "skill": ["Python", "C/C++"],
    "married": False
}

# 將 Python 資料轉為 JSON 格式的字串
print(json.dumps(myDict))
{"name": "Jason", "age": 21, "skill": ["Python", "C/C++"], "married": false}

若需要加上排版以方便閱讀,可以使用 indent 參數指定縮排長度:

# 加入排版
print(json.dumps(myDict, indent = 4))
{
    "name": "Jason",
    "age": 21,
    "skill": [
        "Python",
        "C/C++"
    ],
    "married": false
}

參考資料

  • Python json 模組官方文件
  • The Geek Stuff:5 Python Examples to Read and Write JSON files for Encode and Decode

分類:Python

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide