单双引号交替的json串
1.常见的json串,类似于这种{"isSucess":true, "name":"yoyo", "status": "200"},里面的key和value都是双引号。这种是可以用json模块里面的loads转成字典的
import json a = '{"isSucess":true, "name":"yoyo", "status": "200"}' b = json.loads(a) print(b) print(type(b))
运行结果
{'isSucess': True, 'name': 'yoyo', 'status': '200'} <class 'dict'>
2.有时候返回的json数据并不是标准的双引号,里面key和value有单引号也有双引号,这种就比较坑了
{"isSucess":true, "result": '[{"name":"yoyo", "status": "200"}]'}
import json c = '''{"isSucess":true, "result": '[{"name":"yoyo", "status": "200"}]'}''' d = json.loads(c) print(d)
直接这样用json去转,会报错:json.decoder.JSONDecodeError: Expecting value: line 1 column 29 (char 28)
3.解决办法
- 先替换json串里面的true, false, null这种类型
f = '''{"isSucess":true, "result": '[{"name":"yoyo", "status": "200"}]'}''' f1 = f.replace("true", "True").replace("false", "False").replace("null", "None") print(eval(f1))
运行结果:
{'isSucess': 'True', 'result': '[{"name":"yoyo", "status": "200"}]'}