python操作json的方法有
json.dumps
――將json對(duì)象(字典)轉(zhuǎn)換為字符串對(duì)象
json.loads
――將字符串對(duì)象轉(zhuǎn)換為json對(duì)象(字典)
如果定義json對(duì)象
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)個(gè)360度再操作
jsonstring1=json.dumps(jsonstring1) jsonstring1=json.loads(jsonstring1) print jsonstring1.keys() print jsonstring1['results'][0]['policy']
但是如果定義字符串對(duì)象就要小心了
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\"}"}]}'''
這個(gè)只是對(duì)上面的json對(duì)象加了三引號(hào)轉(zhuǎn)為一個(gè)字符串,所以理論上可以直接loads之后就按json操作
json.loads(jsonstring2)
但是實(shí)際卻報(bào)錯(cuò)了,原因是因?yàn)榇罄ㄌ?hào)前后的雙引號(hào)沒有去掉,網(wǎng)上很多在線的json格式化工具對(duì)于這些雙引號(hào)不會(huì)報(bào)錯(cuò),但是python會(huì),而定義json對(duì)象時(shí)加了雙引號(hào)操作卻沒報(bào)錯(cuò),是因?yàn)椴患永锩娴膬?nèi)容會(huì)被轉(zhuǎn)義,所以千萬不能完全相信網(wǎng)上的json格式校驗(yàn)工具。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
