json.loads()无法解析单引号字符串问题
实践中遇到Jjson内容的string数据是单引号’ ',但是json格式里string类型的数据要用双引号才能被json.loads解析。按照网上的资料有两种解决办法,本人测试第二种可以,第一种暂时不行:
1、第一种(验证不通过)
// 省略前后代码
s = s.replace('\'','\"')
data = json.loads(s)
2、第二种(验证通过)
data=json.loads(json.dumps(eval(data)))
基本功解释:
json.load:表示读取文件,返回python对象
json.dump:表示写入文件,文件为json字符串格式,无返回
json.dumps:将python中的字典类型转换为字符串类型,返回json字符串 [dict→str]
json.loads:将json字符串转换为字典类型,返回python对象 [str→dict]
load和dump处理的主要是 文件
loads和dumps处理的是 字符串
虽然json.loads()无法解析单引号字符串,但是eval()这个内置函数可以将字符串表达式转化为值(很智能),它可以解析单引号字符串。
在这里,eval()将字符串转化为字典对象,json.dumps()可将字典对象转化为JSON格式的字符串,然后json.loads()可将JSON格式的字符串解析为字典对象。