如何用Python編寫JSON?
JSON(JavaScript Object Notation)是一種輕量級的數據交換格式, 由于其格式簡單、易于閱讀、易于編寫,廣泛應用于Web前后端數據傳輸和存儲。愛掏網 - it200.comPython是一種高效、易用的編程語言,提供了豐富的JSON處理工具,輕松實現JSON編寫和解析。愛掏網 - it200.com
本文將介紹如何用Python編寫JSON,包括以下主要內容:
- 什么是JSON?
- JSON的Python模塊
- 如何編寫JSON
- 簡單JSON對象
- JSON對象數組
- 處理JSON中的特殊字符
- 轉義字符
- 非ASCII字符
- 將Python對象轉換為JSON
- 將JSON解析為Python對象
- 總結
JSON是一種數據交換格式,常用于Web前后端數據傳輸和存儲。愛掏網 - it200.comJSON格式具有以下特點:
- 簡單:由鍵值對組成,易于理解和調試。愛掏網 - it200.com
- 輕量:格式簡單,相對于XML格式,文本數據更小。愛掏網 - it200.com
- 語言無關:JSON格式是一種語言無關的格式,可以在任何編程語言中解析和生成。愛掏網 - it200.com
一個簡單的JSON對象示例如下:
{
"name": "John",
"age": 30,
"city": "New York"
}
JSON的Python模塊
Python提供了處理JSON格式的模塊,常用的有:
- json:標準庫,用于編碼和解碼JSON格式。愛掏網 - it200.com
- simplejson:第三方庫,可以更快地處理JSON數據。愛掏網 - it200.com
本文主要使用標準庫json進行JSON編寫和解析。愛掏網 - it200.com
如何編寫JSON
簡單JSON對象
一個簡單的JSON對象由一些屬性(鍵值對)組成,使用花括號作為容器,屬性之間使用逗號分隔。愛掏網 - it200.comPython中可以用字典(dict)類型表示,然后使用json.dumps()函數將字典轉換為JSON格式。愛掏網 - it200.com
import json
person = {'name': 'John', 'age': 30, 'city': 'New York'}
json_str = json.dumps(person)
print(json_str)
輸出結果:
{
"name": "John",
"age": 30,
"city": "New York"
}
JSON對象數組
如果要編寫包含多個JSON對象的數組,使用方括號作為容器,每個對象之間使用逗號分隔。愛掏網 - it200.com
import json
people = [
{'name': 'John', 'age': 30},
{'name': 'Mary', 'age': 25},
{'name': 'Bob', 'age': 35}
]
json_str = json.dumps(people)
print(json_str)
輸出結果:
[
{"name": "John", "age": 30},
{"name": "Mary", "age": 25},
{"name": "Bob", "age": 35}
]
處理JSON中的特殊字符
轉義字符
如果JSON對象中有特殊字符,Python會自動將其轉義。愛掏網 - it200.com例如,如果對象中包含雙引號或反斜杠,則會將其轉義為 \\” 和 \\。愛掏網 - it200.com如果要手動編寫包含轉義字符的JSON對象,可以通過添加轉義字符\來實現。愛掏網 - it200.com
import json
person = {'name': 'John "the killer"', 'age': 30}
json_str = json.dumps(person)
print(json_str)
輸出結果:
{"name": "John \"the killer\"", "age": 30}
非ASCII字符
如果JSON對象中包含非ASCII字符(例如中文),則必須使用Unicode編碼。愛掏網 - it200.comPython中可以將其表示為Unicode字符串。愛掏網 - it200.com
import json
person = {'name': '張三', 'age': 30}
json_str = json.dumps(person, ensure_ascii=False)
print(json_str)
輸出結果:
{"name": "張三", "age": 30}
將Python對象轉換為JSON
使用json.dumps()函數可以將Python對象轉換為JSON格式的字符串。愛掏網 - it200.com該函數的參數包括: