JSON(JavaScript Object Notation,JS對象標記)是一種輕量級的數據交換格式,它基於ECMAScript
(w3c制定的js規範)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次
結構使得Json成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡
傳輸效率。更多解釋請見:https://baike.baidu.com/item/JSON/2462549?fr=aladdinJSON支持數據格式:
1.對象(字典)使用花括號
2.列表(數組)使用方括號
3.整形、浮點型、布爾類型還用null類型
4.字符串類型(字符串必須要用雙引號,不能用單引號)多個數據之間使用逗號分開
注意:json本質上就是一個字符串
字典和列表轉JSON
import json # 引入json模塊
books = [
{
"title": "西瓜",
'price': 1.1
},
{
"title": "南瓜",
'price': 2.2
}
]
json_str = json.dumps(books, ensure_ascii=False)# 使用dumps函數轉json對象時,需要使用ensure_ascii=False關閉ascii碼
print(type(json_str))
print(json_str)
# 在Python中。只有基本數據類型才能轉換成JSON格式的字符串。也即:int、float、str、list、dict、tuple
將json數據直接dump到文件中
# json模塊中除了dumps函數,還用一個dump函數,這個函數可以傳入一個文件指針,直接將字符串dump到文件中。示例代碼如下:
books = [
{
"title": "西瓜",
"price": 1.1
},
{
"title": "南瓜",
"price": 2.2
}
]
with open('a.json', 'w', encoding='utf-8') as fp:
json.dump(books, fp, ensure_ascii=False) # 如果以中文方式存儲時,可以使用ensure_ascii=False特性關閉ascii碼,ascii是默認是打開的
將一個json字符串loads成Python對象:
json_str = '[{"title": "鋼鐵是怎樣練成的", "price": 9.8}, {"title": "紅樓夢", "price": 9.9}]'
books = json.loads(json_str, encoding='utf-8') # 設置編碼方式
print(type(books))
print(books)
使用load函數從文件中json數據
with open('a.json', 'r', encoding='utf-8') as fp:
json_str = json.load(fp)
print(json_str)