如下,非要我单双引号混用,可恶啊~
server:~/str_parse$ python3
Python 3.6.9 (default, Jan 26 2021, 15:33:00)
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> val=json.load("hahaha")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'json' is not defined
>>> import json
>>> val=json.load("hahaha")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/json/__init__.py", line 296, in load
return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'
>>> val=json.loads("hahaha")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 357, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
>>> val=json.loads("{"ret":"1"}")
File "<stdin>", line 1
val=json.loads("{"ret":"1"}")
^
SyntaxError: invalid syntax
>>> val=json.loads("{"ret": "1"}")
File "<stdin>", line 1
val=json.loads("{"ret": "1"}")
^
SyntaxError: invalid syntax
>>> val=json.loads("{ "ret": "1"} ")
File "<stdin>", line 1
val=json.loads("{ "ret": "1"} ")
^
SyntaxError: invalid syntax
>>> val=json.loads("{ "ret" : "1"} ")
File "<stdin>", line 1
val=json.loads("{ "ret" : "1"} ")
^
SyntaxError: invalid syntax
>>> val=json.loads("{ "HH" : "1"} ")
File "<stdin>", line 1
val=json.loads("{ "HH" : "1"} ")
^
SyntaxError: invalid syntax
>>> val=json.loads("{ 'HH' : '1'} ")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 3 (char 2)
>>> val=json.loads('{ 'HH' : '1'} ')
File "<stdin>", line 1
val=json.loads('{ 'HH' : '1'} ')
^
SyntaxError: invalid syntax
>>> val=json.loads(' { 'HH' : '1'} ')
File "<stdin>", line 1
val=json.loads(' { 'HH' : '1'} ')
^
SyntaxError: invalid syntax
>>> val=json.loads(' { HH : '1'} ')
File "<stdin>", line 1
val=json.loads(' { HH : '1'} ')
^
SyntaxError: invalid syntax
>>> val=json.loads(' { HH : 1 } ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 4 (char 3)
>>>
>>>
>>>
>>>
>>> val=json.loads(' { "HH" : 1 } ') ###################### success ###################
>>> val=json.loads(" { "HH" : 1 } ")
File "<stdin>", line 1
val=json.loads(" { "HH" : 1 } ")
^
SyntaxError: invalid syntax
>>>