>>> s="{'name':'Tom'}" >>> type(s) <class 'str'> >>> json.loads(s) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Program Files\python\lib\json\__init__.py", line 348, in loads return _default_decoder.decode(s) File "C:\Program Files\python\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Program Files\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.loads將str轉為dict格式的數據時報錯
但如果將s="{'name':'Tom'}"改為s='{"name":"Tom"}',就可以轉化成功了
>>> s='{"name":"Tom"}' >>> type(s) <class 'str'> >>> S=json.loads(s) >>> S {'name': 'Tom'} >>> type(S) <class 'dict'>
看來原因是出現在引號上。。。