【Python】json模块解析带单引号的json字符串
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
问题
python解析json时,可以用json.loads(str)来处理,但是如果json的key或者value是单引号包围,则json.loads就会报错,解决方法如下
方法一
将单引号替换为双引号
s = "'key':'value'"
s = s.replace('\'','\"')
js = json.loads(json.dumps(eval(s)))
方法二
js = json.loads(json.dumps(eval(s)))
解析:
eval函数是一个很智能的函数,可以将字符串中内容包含的类型转换成那个类型,比如:
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a))
b = eval(a)
print(type(b)) # list
print(b) #[[1,2], [3,4], [5,6], [7,8], [9,0]]
a是一个字符串,但是字符串里是一个list,eval之后就变成了一个list,同理,dict、json、tuple等结构可以用此类方法。
因此,在这里,eval是先将字符串转化为字典对象,然后json.dumps是将字典对象转换为json对象,json.loads又将json对象变为字典对象,所以其实可以直接eval(s)即可。
参考:https://blog.csdn.net/cc695906217/article/details/84238727
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
4 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)