json字符串和字典的區別:
json:
(JavaScript Object Notation)的首字母縮寫,字面的意思是(javascript對象表示法),這里說的json指的是類似於javascript對象的一種數據格式對象,目前這種數據格式比較流行,逐漸替換掉了傳統的xml數據格式, 前端使用ajax的時候后台返回該前端的數據格式就是json格式的。
字典是一種數據結構,而json是一種數據格式,
格式就會有一些形式上的限制,比如json的格式要求必須且只能使用雙引號作為key或者值的邊界符號(值如果是數字可以不用加雙引號),不能使用單引號,用單引號或者不用引號會導致讀取數據錯誤,而且“key”必須使用邊界符(雙引號),但字典就無所謂了,可以使用單引號,也可以使用雙引號。
總結:
json的特點
1. 字符串外邊有單引號
2. json是類字典的形式,里面的鍵-值對規定必須使用雙引號,值如果是數字可以不加雙引號,
但是鍵必須是雙引號引起來的字符串, json的值可以是普通變量,數組,json對象
缺點:
json只有null、布爾、數字、字符串、數組和對象這幾種數據類型,JSON沒有日期類型
####################################
users = {
"admin": {
'username': 'admin',
"password": 123,
"nickname": "老王"
}
}
import json
以下兩個函數用於json數據類型的轉換
json.dumps() 字典 -> json
json.loads() json -> 字典
以下兩個函數用於json數據類型轉換的同時操作文件
json.dump()
json.load()
# 1. 數據類型的轉換
# 其他類型轉換為json字符串
json_str = json.dumps(users)
print(json_str, type(json_str))
# 讀取json字符串,還原為原來的數據類型
json_obj = json.loads(json_str)
print(json_obj, type(json_obj))
#
# # 2. 類型轉換的同時操作文件
# json.dump(users, open("d2.txt", "w"))
#
# data = json.load(open("d2.txt"))
# print(data)