load和loads的區別

JJJhr發表於2024-06-09

在 Python 中,loadloads 是用於處理 JSON 資料的兩個函式,分別用於從檔案和字串中載入 JSON 資料。它們都屬於 json 模組。以下是詳細的說明和示例:

json.load

json.load 用於從一個檔案物件中讀取 JSON 資料並將其解析為一個 Python 物件。

示例

假設我們有一個包含 JSON 資料的檔案 data.json,內容如下:

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

可以使用 json.load 來讀取這個檔案:

import json

# 開啟檔案並讀取 JSON 資料
with open('data.json', 'r') as file:
    data = json.load(file)

print(data)
# 輸出: {'name': 'John', 'age': 30, 'city': 'New York'}

json.loads

json.loads 用於從一個字串中解析 JSON 資料並將其轉換為一個 Python 物件。

示例

假設我們有一個 JSON 格式的字串:

import json

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

# 將 JSON 字串解析為 Python 物件
data = json.loads(json_string)

print(data)
# 輸出: {'name': 'John', 'age': 30, 'city': 'New York'}

區別

  • json.load: 從檔案物件中讀取 JSON 資料。
  • json.loads: 從字串中讀取 JSON 資料。

其他相關函式

  • json.dump: 將 Python 物件轉換為 JSON 格式,並將其寫入檔案。
  • json.dumps: 將 Python 物件轉換為 JSON 格式的字串。
import json

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

# 將 Python 物件寫入 JSON 檔案
with open('output.json', 'w') as file:
    json.dump(data, file)

json.dumps 示例

import json

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

# 將 Python 物件轉換為 JSON 字串
json_string = json.dumps(data)
print(json_string)
# 輸出: '{"name": "John", "age": 30, "city": "New York"}'

總結起來,json.loadjson.loads 都是用於將 JSON 資料解析為 Python 物件的函式,區別在於前者是從檔案讀取,後者是從字串讀取。

相關文章