json字符串大括號里的必須全部雙引號


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}}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM