單雙引號交替的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"}]'}
