iT邦幫忙

0

Python的json 模組

  • 分享至 

  • xImage
  •  

Python 的 json 模組是一個內建的庫,用於處理 JSON(JavaScript Object Notation)數據格式。
JSON 是一種輕量級的資料交換格式,易於人類閱讀和撰寫,也易於機器解析和生成。
以下是對 json 模組的詳細介紹,包括其功能、常用函數和示例。

什麼是 JSON?

JSON 格式: JSON 是一種基於文本的資料格式,通常用於網路應用程式之間的資料傳遞。它使用鍵值對(key-value pairs)的方式來表示資料,結構類似於 Python 的字典。

資料類型: JSON 支持多種資料類型,包括:

  • 字串(String)
  • 數字(Number)
  • 布林值(Boolean)
  • 陣列(Array)
  • 物件(Object)
  • 空值(null)

Python 的 json 模組功能

Python 的 json 模組提供了多個函數,用於在 Python 對象和 JSON 數據之間進行轉換和序列化。

常用函數

函數名稱 描述 參數 返回值
json.dumps(obj) 將 Python 對象轉換為 JSON 字串。 obj: 要轉換的 Python 資料結構。可選參數如 indent 用於格式化輸出。 JSON 字串
json.loads(json_string) 將 JSON 字串‘轉換’解析為 Python 對象。 json_string: 要解析的 JSON 字串。 Python 對象
json.dump(obj, file) 將 Python 對象‘寫入’到文件中,以 ‘JSON 格式儲存’。 obj: 要寫入的 Python 資料結構。file: 開啟的文件對象。
json.load(file) 從文件中‘讀取’ JSON 數據並解析為 Python 對象。 file: 開啟的文件對象。 Python 對象

1.json.dumps(obj):將 Python 對象轉換為 JSON 字串。
- 參數:
- obj: 要轉換的 Python 資料結構。
- 可選參數如 indent 用於格式化輸出。
範例:

import json
data = {"name": "John", "age": 30}
json_string = json.dumps(data)
print(json_string)  # 輸出: {"name": "John", "age": 30}

2.json.loads(json_string):將 JSON 字串解析為 Python 對象。
參數:
json_string: 要解析的 JSON 字串。

import json
json_string = '{"name": "John", "age": 30}'
data = json.loads(json_string)
print(data)  # 輸出: {'name': 'John', 'age': 30}

3.json.dump(obj, file):將 Python 對象寫入到文件中,以 JSON 格式儲存
參數:
obj: 要寫入的 Python 資料結構。
file: 開啟的文件對象。

import json
data = {"name": "John", "age": 30}
with open('data.json', 'w') as f:
    json.dump(data, f)

4.json.load(file):從文件中讀取 JSON 數據並解析為 Python 對象。
參數:
file: 開啟的文件對象。

import json
with open('data.json', 'r') as f:
    data = json.load(f)
    print(data)  # 輸出: {'name': 'John', 'age': 30}

小結

使用 json.loads() 當你有一個 JSON 文件字串需要‘轉換’解析時。
使用 json.load() 當你需要從一個JSON 文件中讀取數據時。
使用 json.dump() 當你想把 Python 裡面資料(比如字典)寫入到一個json文件中,並儲存。
使用 json.dumps() Python 裡面的資料變成 JSON 字串,但不需要寫入文件

序列化與反序列化:
當你將 Python 字典轉換為 JSON 字串時,這個過程稱為序列化(Serialization)。這使得 Python 對象能夠以一種標準格式進行儲存或傳輸。
反之,將 JSON 字串轉換回 Python 對象的過程稱為反序列化(Deserialization)。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言