问题:JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

问题代码:

1
2
3
import json
s = "{'name':'zhuhonggen','age':20}"
d = json.loads(s)

错误截图

error shot

解决问题思路

1
s =  "{'name':'zhuhonggen','age':20}"

我们发现age属性对应的value值是没有被'单引号括起来的,这种形式的数据不符合json的转化数据格式,json数据转换的格式必须是符合其格式的,也就是说,keyvalue都得被'括起来。我们看下json的格式:
json format
从图中我们可以看到,keyvalue都得被'括起来。

如何解决

  • 手动修改字符串的格式
  • 借助三方包,这里推荐demjson

使用:

1
2
3
import demjson
s = "{'name':'zhuhonggen','age':20}"
d = demjson(s)

result

写在最后

欢迎大家关注鄙人的公众号【麦田里的守望者zhg】,让我们一起成长,谢谢。
微信公众号