开发者社区> 问答> 正文

python中json解析报错,但是双引号就不报错是为什么

同样是解析字符串,为什么解析单引号与双引号就不一样呢 代码操作过程

a="{'a':'b'}"
a
"{'a':'b'}"
json.loads(a)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/local/Cellar/python/3.7.5/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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)
a='{"a":"b"}'
json.loads(a)
{'a': 'b'}

操作截图 image.png

展开
收起
道月芬1 2021-10-19 10:52:33 1361 0
1 条回答
写回答
取消 提交回答
  • 网络规划设计师、敏捷专家、CISP、ITSS服务经理、ACA全科目、ACP4项、ACE、CBP、CDSP、CZTP等。拥有 PRINCE2 Foundation/Practitioner、CCSK、ITIL、ISO27001、PMP等多项国际认证。 专利5+、期刊10+、知识产权师。核心期刊审稿人。

    您好,这里的字符串必须使用双引号,这个方法确实不能这样解析,如果您非要这样操作,在使用json.loads()前使用eval()和json.dumps()进行处理。或者呢,替换字符串中的单引号为双引号。

    2021-10-19 11:29:18
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像