python中,字典和json字符串互相轉換,json中key和value必須是雙引號
一,字典中,key和value可以是單引號或者是雙引號
#一,字典轉換為json字符串,字典中key和value可以是單引號或者是雙引號,但是轉換稱json格式后,都是雙引號 dic={'a':1,'b':'haha'} st=json.dumps(dic) print(st) #二,字典轉換為json字符串 dic={"a":1,"b":"haha"} st=json.dumps(dic) print(st)
打印結果
{"a": 1, "b": "haha"} {"a": 1, "b": "haha"}
二,json字符串中,大括號內必須全部是雙引號,大括號最外層是單引號,否者json轉換為字典對象,會報錯!!!
#三,非標准字符串轉換字典,key和value是單引號,不是標准得json數據 st="{'a': 1, 'b': 'haha'}" dic=json.loads(st) print(dic)
報錯:
File "D:\python\lib\json\__init__.py", line 348, in loads return _default_decoder.decode(s) File "D:\python\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "D:\python\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
再比如:
# 三,非標准字符串轉換字典 st=str({'a': 1, 'b': 'haha'}) dic=json.loads(st) print(dic)
報錯:
File "D:\python\lib\json\__init__.py", line 348, in loads return _default_decoder.decode(s) File "D:\python\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "D:\python\lib\json\decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
合法得json字符串,大括號內必須全部是雙引號!!!!
# 標准得json格式,是雙引號!!!,最外層是單引號!!!
st = '{"a": 1, "b": "haha","c":{"d":1}}'
print(st)
dic = json.loads(st)
print(dic)
輸出:
{"a": 1, "b": "haha","c":{"d":1}}
{'a': 1, 'b': 'haha', 'c': {'d': 1}}