文章目錄
- JSON 簡介
- JSON 語法規則
- JSON 名稱/值對
- JSON 值類型
- JSON文件存儲
- JSON示例
- 數據示例
- Python解析JSON代碼
JSON 簡介
- JSON 語法是 JavaScript 語法的子集。
- JSON 是存儲和交換文本信息的語法。
- JSON: JavaScript Object Notation(JavaScript 對象表示法)。
JSON 語法規則
- 數據在名稱/值對中。
- 數據由逗號分隔。
- 花括號保存對象。
- 方括號保存數組。
JSON 名稱/值對
JSON 數據的書寫格式是:名稱/值對。
名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值:
"name" : "ojbk"
JSON 值類型
JSON 值可以是:
- 數字(整數或浮點數)
- 字符串(在雙引號中)
- 邏輯值(true 或 false)
- 數組(在方括號中)
- 對象(在花括號中)
- null
JSON文件存儲
- 文件編碼建議UTF-8
- 常用文件擴展名:.json或.jsonc(含注釋時)
JSON示例
數據示例
{"user": {"id": "ojbk","profile": {"name": "某某","age": 35,"interests": ["編程", "攝影"]}}
}
Python解析JSON代碼
以下是Python解析JSON的常用方法說明:
- 基礎解析方法:
import json# 從字符串解析
json_str = '{"name": "Alice", "age": 25}'
data = json.loads(json_str) # 返回字典類型
print(data['name']) # 輸出: Alice# 從文件解析
with open('data.json', 'r', encoding='utf-8') as f:file_data = json.load(f)
- 生成JSON:
# 字典轉JSON字符串
data_dict = {"city": "北京", "population": 2171}
json_str = json.dumps(data_dict, ensure_ascii=False) # 中文不轉義
print(json_str) # 輸出: {"city": "北京", "population": 2171}# 寫入JSON文件
with open('output.json', 'w', encoding='utf-8') as f:json.dump(data_dict, f, indent=2) # 縮進美化
- 特殊參數說明:
ensure_ascii
: 控制非ASCII字符轉義(False顯示原文)indent
: 縮進空格數(美化輸出)sort_keys
: 按鍵名排序(默認False)
- 異常處理:
try:data = json.loads(invalid_json_str)
except json.JSONDecodeError as e:print(f"JSON解析錯誤: {e.msg} (行{e.lineno}列{e.colno})")
- 數據類型對應關系:
JSON類型 | Python類型 |
---|---|
object | dict |
array | list |
string | str |
number | int/float |
true/false | bool |
null | None |
需要解析特定格式的JSON文件或處理復雜嵌套結構時,可以進一步說明需求。