[Python基礎] 資料格式 JSON 介紹

2024/04/27閱讀時間約 5 分鐘

JSON(JavaScript Object Notation)是一種用於資料交換的輕量級資料格式,通常用於網路應用程式之間的資料傳遞。

JSON的格式易於閱讀和撰寫,也易於解析和產生,因此它在開發中被廣泛使用。


JSON由兩種結構組成:物件(Object)和陣列(Array)。

物件(Object)

物件由一對大括號 {} 包圍,其中包含以逗號分隔的一組名稱/值對名稱之間使用冒號 : 分隔。

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

陣列(Array)

陣列由一對方括號 [] 包圍,其中包含以逗號分隔的值。

[
"apple",
"banana",
"orange"
]

範例

以下是一個包含物件和陣列的JSON範例:

{
"name": "John",
"age": 30,
"city": "New York",
"children": [
{
"name": "Alice",
"age": 5
},
{
"name": "Bob",
"age": 8
}
]
}

在Python中使用 JSON

在程式中使用JSON通常涉及將JSON字串解析為程式語言中的物件或陣列,或者將程式語言中的物件或陣列轉換為JSON字串。


在大多數程式語言中,都有內建的函式或庫可用於處理JSON。例如,在Python中,你可以使用內建的 json 模組來處理JSON資料


json.loads 將 JSON 字串解析為 Python 物件

json.dumps 將 Python 物件轉換為 JSON 字串

import json

# 將 JSON 字串解析為 Python 物件
json_string = '{"name": "John", "age": 30, "city": "New York"}'
python_obj = json.loads(json_string)
print(python_obj)
print(type(python_obj)) # <class 'dict'>


# 將 Python 物件轉換為 JSON 字串
python_obj = {"name": "John", "age": 30, "city": "New York"}
json_string = json.dumps(python_obj)
print(json_string)
print(type(json_string)) # <class 'str'>
終端機結果

終端機結果

處理JSON資料的儲存和載入

儲存JSON檔:

使用json.dump儲存

import json

data = {"name": "crab", "age": 18, "city": "New York"}
#儲存路徑/檔案名稱
json_path ='F:/python/opencv/Json/data.json'

with open(json_path, "w") as json_file:
json.dump(data, json_file)

在指定的儲存路徑中,產生了data.json的檔案

儲存結果

儲存結果

載入JSON檔:

使用json.load載入

import json

#儲存路徑/檔案名稱
json_path ='F:/python/opencv/Json/data.json'

with open(json_path, "r") as json_file:
data = json.load(json_file)

print(data)
輸出結果

輸出結果


JSON的語法規則:

  1. 資料類型
    • JSON支援以下資料類型:字串(String)數字(Number)布林值(Boolean)物件(Object)陣列(Array)null
  2. 物件(Object)
    • 物件以 {} 大括號包圍。
    • 物件中的每個成員都是一個名稱/值對,名稱和值之間使用冒號 : 分隔,成員之間使用逗號 , 分隔。
    • 名稱必須是字串,且必須用雙引號 " 括起來。
    • 值可以是任何合法的JSON資料類型。
  3. 陣列(Array)
    • 陣列以 [] 方括號包圍。
    • 陣列中的每個元素都是一個值,元素之間使用逗號 , 分隔。
    • 元素可以是任何合法的JSON資料類型。
  4. 字串(String)
    • 字串是一系列Unicode字元的序列。
    • 字串必須用雙引號 " 括起來。
  5. 數字(Number)
    • 數字可以是整數或浮點數。
    • JSON中的數字表示法與JavaScript中的表示法相同。
  6. 布林值(Boolean)
    • JSON中的布林值表示為 true 或 false(不用引號括起來)。
  7. null
    • null表示空值或無值。
  8. 空格和換行
    • JSON忽略空格和換行,所以你可以使用它們來增加資料的可讀性。







49會員
88內容數
Python程式設計師,不是在學習就是在學習的路上
留言0
查看全部
發表第一個留言支持創作者!