为什么python json中的单引号和双引号不同

时间:2015-01-06 17:24:12

标签: python-2.7

我知道单引号和双引号在python中都会以相同的方式工作,但为什么它在以下两种情况下表现不同

>>> import json
>>> json.loads('{"M":2}')
{u'M': 2}

并在

>>> json.loads("{'M':2}")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\p\python\lib\json\__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "c:\p\python\lib\json\decoder.py", line 360, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "c:\p\python\lib\json\decoder.py", line 376, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 1 (char 1)

提前致谢

1 个答案:

答案 0 :(得分:1)

>>> json.loads('{"M":2}')
{u'M': 2}

返回python字典

JSON只接受双引号。

json.loads("{'M':2}")

这不是有效的JSON。

请参阅:jQuery.parseJSON single quote vs double quote