前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >json.loads()的字符串中为单引号引发的错误

json.loads()的字符串中为单引号引发的错误

作者头像
用户1558882
发布2018-10-10 18:05:05
3.1K0
发布2018-10-10 18:05:05
举报
文章被收录于专栏:RgcRgc
代码语言:javascript
复制
如下错误属于弱智错误,但是错的原因让我无语,所以记录一下


str2="{'card':6217001650004184441}"
print(json.loads(str2))

Traceback (most recent call last): File "G:/FastWorkStateServer/logs/redis_fabu.py", line 20, in <module> print(json.loads(str2)) File "D:\python3.6.5\lib\json\__init__.py", line 354, in loads return _default_decoder.decode(s) File "D:\python3.6.5\lib\json\decoder.py", line 339, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "D:\python3.6.5\lib\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 2 (char 1)

错误原因:字符串里用单引号来标识字符。

解决方法:将字符串里的单引号替换成双引号

代码语言:javascript
复制
import re
test=re.sub('\'','\"',test)
result=json.loads(test)
result['data']
'123'

对于带u'的字符串,u也要去掉:

代码语言:javascript
复制
c={u"test":124}
d=re.sub("u'","\"",c)  
json.loads(d)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-09-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档