首頁  >  文章  >  後端開發  >  講解python中操作json需要注意的地方

講解python中操作json需要注意的地方

Y2J
Y2J原創
2017-05-11 11:25:431323瀏覽

這篇文章主要為大家介紹了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物件導向影片教學

以上是講解python中操作json需要注意的地方的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn