這篇文章主要給大家介紹了python中字串類型json操作的一些注意事項,文中介紹的非常詳細,對大傢具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
python操作json的方法有
json.dumps——將json對象(字典)轉換為字串對象
json.loads——將字串對象轉換為json對象(字典)
如果定義json對象
jsonstring1={"results":[{"id":"1","name":"\u9ed8\u8ba4\u5206\u7ec4","policy":"4","timer_scan_setting":"{\"last\":\"10.29.13\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"13\"}"},{"id":"2","name":"\u6d4b\u8bd5\u7684","policy":"1","timer_scan_setting":"{\"last\":\"10.29.15\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"15\"}"},{"id":"4","name":"\u4ea7\u54c1\u7ec4","policy":"3","timer_scan_setting":"{\"last\":\"10.8.15\",\"setting\":\"disable\"}"}]}
可以直接按json操作,比如
print jsonstring1.keys()print jsonstring1['results'][0]['policy']
也可以轉個360度再操作
jsonstring1=json.dumps(jsonstring1)jsonstring1=json.loads(jsonstring1)print jsonstring1.keys()print jsonstring1['results'][0]['policy']
但是如果定義字串對象就要小心了
jsonstring2='''{"results":[{"id":"1","name":"\u9ed8\u8ba4\u5206\u7ec4","policy":"4","timer_scan_setting":"{\"last\":\"10.29.13\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"13\"}"},{"id":"2","name":"\u6d4b\u8bd5\u7684","policy":"1","timer_scan_setting":"{\"last\":\"10.29.15\",\"setting\":\"fulldisk\",\"type\":\"day\",\"hour\":\"15\"}"},{"id":"4","name":"\u4ea7\u54c1\u7ec4","policy":"3","timer_scan_setting":"{\"last\":\"10.8.15\",\"setting\":\"disable\"}"}]}'''
這個只是對上面的json對象加了三引號轉為一個字串,所以理論上可以直接loads之後就按json操作
json.loads(jsonstring2)
但是實際卻報錯了,原因是因為大括弧前後的雙引號沒有去掉,網上很多線上的json格式化工具對於這些雙引號不會報錯,但是python會,而定義json對象時加了雙引號操作卻沒報錯,是因為不加裡面的內容會被轉義,所以千萬不能完全相信網上的json格式校正工具。
總結
【相關推薦】
1. Python免費視頻教程
2. Python基礎入門教程
3. Python物件導向視頻教程