json的語法格式扛伍,{"key":value}掂榔,需要注意以下幾點:
1.Jso是一種純字符數(shù)據(jù)探颈,不是編程語言熟丸;
2.json數(shù)據(jù)以鍵值對形式存在,多個鍵值對之間用逗號隔開伪节,之間對的鍵和值之間用冒號鏈接
3.json的數(shù)據(jù)用花括號“{}”或中括號“[]”包裹
4.json的鍵值對的鍵部分光羞,必須用雙引號包裹,單引號不行(在python中單引號也表示字符怀大,但如果用單引號的字符串鍵值對纱兑,不能轉(zhuǎn)換成json格式)
5.json數(shù)據(jù)結(jié)束后,不允許出現(xiàn)沒有意義的逗號叉寂,如{“a”:1,}
轉(zhuǎn)自:https://blog.csdn.net/qq_40994972/article/details/84189430
字典是一種數(shù)據(jù)結(jié)構(gòu)萍启,而json是一種數(shù)據(jù)格式,
格式就會有一些形式上的限制,比如json的格式要求必須且只能使用雙引號作為key或者值的邊界符號(值如果是數(shù)字可以不用加雙引號)屏鳍,不能使用單引號勘纯,用單引號或者不用引號會導致讀取數(shù)據(jù)錯誤,而且“key”必須使用邊界符(雙引號)钓瞭,但字典就無所謂了,可以使用單引號驳遵,也可以使用雙引號。
總結(jié):
json的特點
- 字符串外邊有單引號
- json是類字典的形式山涡,里面的鍵-值對規(guī)定必須使用雙引號堤结,值如果是數(shù)字可以不加雙引號,
但是鍵必須是雙引號引起來的字符串鸭丛, json的值可以是普通變量竞穷,數(shù)組,json對象
缺點:
json只有null鳞溉、布爾瘾带、數(shù)字、字符串熟菲、數(shù)組和對象這幾種數(shù)據(jù)類型,JSON沒有日期類型
字典可能是json看政,json一定是字典
json.dumps() : json-->str 或者也可以寫成dict-->str
總之json.dumps()是將其他類型的轉(zhuǎn)化成string類型
舉例:
aa={"A":"b"} # type(aa)=dict
aa1=json.dumps(aa) #type(aaa)=str,也就是說aa數(shù)據(jù)類型是dict朴恳,但是數(shù)據(jù)格式是json的,所以對于aa能用json.dumps(aa),不會報錯
print(type(aa1)) # str
aa2={'A':'B'} # type(aa2)=dict
aa3=json.dumps(aa2)
print(type(aa3)) #str
print(aa3) # {"A": "B"}
a2='{"A":"b"}'
a3=json.loads(a2) #string-->dict
print(type(a3)) #dict允蚣,
print(a3) #{'A': 'b'},此時a3是dict于颖,但不是json,因為該字典的輸出格式是單引號括起來的嚷兔,想以json的格式輸出需要轉(zhuǎn)一下森渐,見下面的a4
a4=json.dumps(a3) #dict-->json
print("a4's type :",type(a4)) # str, 同時它的數(shù)據(jù)格式也是json,但是用type()時會輸出dict冒晰,不會輸出json章母,因為json是一種數(shù)據(jù)格式,不是數(shù)據(jù)類型
print("a4's content",a4) #{"A": "b"}
dict可以輸出為json格式翩剪,string也可以輸出為json格式乳怎,即表現(xiàn)為json形式
例子:
users = {
"admin": {
'username': 'admin',
"password": 123,
"nickname": "老王"
}
}
print(type(users)) # dict
users1=json.dumps(users,indent=4)
print(type(users1)) #str
print(users1) # {"admin": {"username": "admin", "password": 123, "nickname": "\u8001\u738b"}}
print(type(users)) # 輸出是dict
為什么不是json格式呢?因為里面的鍵值對沒有全部用雙引號引起來前弯,所以在json.cn中打開蚪缀,不能正常展示
users_dict=json.dumps(users)
print(type(users_dict)) # dict
printusers_dict) #{"admin": {"username": "admin", "password": 123, "nickname": "\u8001\u738b"}}
json.dumps()是將 json-->str
你可能會有這樣的疑問,users不是json啊恕出,