python json-json.loads()函数中的字符串需要是严格的json串格式,不能包含单引号

先看下json的dumps()和loads()函数的定义

json.dumps():将一个Python对象编码成JSON字符串。把字典对象转换成json

json.loads():将JSON格式字符串解码成Python对象。对简单的数据类型可以直接处理。如:string,Unicode,int,float,list,tuple,dict

把json串转成python的字典

json.loads()函数中的字符串需要是严格的json串格式,表示键值对的字符不能用单引号

例子:

>>> a='{"a":1,"b":2}'
>>> json.loads(a)
{u'a': 1, u'b': 2}
>>> b="{'c':1,'d':2}"
>>> json.loads(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:Python27libjson\__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "C:Python27libjsondecoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:Python27libjsondecoder.py", line 380, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)

原文地址:https://www.cnblogs.com/xiaxiaoxu/p/9469258.html