python中字符串類型json操作的注意事項
python操作json的方法有
json.dumps
——將json對象(字典)轉(zhuǎn)換為字符串對象
json.loads
——將字符串對象轉(zhuǎn)換為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']
也可以轉(zhuǎn)個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對象加了三引號轉(zhuǎn)為一個字符串,所以理論上可以直接loads之后就按json操作
json.loads(jsonstring2)
但是實際卻報錯了,原因是因為大括號前后的雙引號沒有去掉,網(wǎng)上很多在線的json格式化工具對于這些雙引號不會報錯,但是python會,而定義json對象時加了雙引號操作卻沒報錯,是因為不加里面的內(nèi)容會被轉(zhuǎn)義,所以千萬不能完全相信網(wǎng)上的json格式校驗工具。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
pandas dataframe 中的explode函數(shù)用法詳解
這篇文章主要介紹了pandas dataframe 中的explode函數(shù)用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05tensorflow保持每次訓練結(jié)果一致的簡單實現(xiàn)
今天小編就為大家分享一篇tensorflow保持每次訓練結(jié)果一致的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python 數(shù)據(jù)科學 Matplotlib圖庫詳解
Matplotlib 是 Python 的二維繪圖庫,用于生成符合出版質(zhì)量或跨平臺交互環(huán)境的各類圖形。今天通過本文給大家分享Python 數(shù)據(jù)科學 Matplotlib的相關(guān)知識,感興趣的朋友一起看看吧2021-07-07Xadmin+rules實現(xiàn)多選行權(quán)限方式(級聯(lián)效果)
這篇文章主要介紹了Xadmin+rules實現(xiàn)多選行權(quán)限方式(級聯(lián)效果),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04