Python 之 Json序列化嵌套類方式
想要用python自已手動(dòng)序列化嵌套類,就要明白兩個(gè)問題:
1.Json是什么?
2.Json支持什么類型?
答案顯而易見
Json就是嵌套對(duì)象
Json在python中支持列表,字典(當(dāng)然也支持int,string.....,不過說這個(gè)也沒多大必要)
很好,等等,列表,字典?我們?cè)趐ython中學(xué)過列表,字典,字典列表,列表字典,字典字典,那,我們可不可以把類對(duì)象轉(zhuǎn)化為這些呢?
我可以很確定的告訴你,可以,并且,嵌套類都可以!!!
下面就來實(shí)戰(zhàn):
from flask import Flaskimport json app = Flask(__name__) class City(): def __init__(self,country,provider): self.country = country self.provider = provider class School(): def __init__(self,country,provider,name,nums): self.city = City(country,provider) self.name = name self.nums = nums @app.route(’/method0’)def method0(): school = School(’china’,’shanxi’,’wutaizhongxue’,’2000’) s_temp0 = [school.city.country,school.city.provider,school.name,school.nums] return json.dumps(s_temp0) @app.route(’/method1’)def method1(): school = School(’china’,’shanxi’,’wutaizhongxue’,’2000’) s_temp1 = {’country’:school.city.country,’provider’:school.city.provider,’name’:school.name,’nums’:school.nums} return json.dumps(s_temp1) @app.route(’/method2’)def method2(): school = School(’china’,’shanxi’,’wutaizhongxue’,’2000’) s_temp2 = [{’country’:school.city.country,’provider’:school.city.provider},school.name,school.nums] return json.dumps(s_temp2) @app.route(’/method3’)def method3(): school = School(’china’,’shanxi’,’wutaizhongxue’,’2000’) s_temp3 = {’city’:[school.city.country,school.city.provider],’name’:school.name,’nums’:school.nums} return json.dumps(s_temp3) @app.route(’/method4’)def method4(): school = School(’china’,’shanxi’,’wutaizhongxue’,’2000’) s_temp4 = {’city’:{’country’:school.city.country,’provider’:school.city.provider},’name’:school.name,’nums’:school.nums} return json.dumps(s_temp4) if __name__ == ’__main__’: app.run(debug=True)
執(zhí)行效果:
很多人會(huì)說,第五種才是我想要的,前面四種不是標(biāo)準(zhǔn)的json數(shù)據(jù),剛開始確實(shí)是這樣認(rèn)為的,但是。。。
1.如果你處理的兩個(gè)嵌套類是數(shù)據(jù)庫(kù)的呢?假比如一對(duì)多的關(guān)系型數(shù)據(jù)庫(kù),method3不是一個(gè)很好的選擇么?
2.如果你處理的兩個(gè)嵌套類是包含關(guān)系呢?method2不是一個(gè)很好的選擇么?
以上這篇Python 之 Json序列化嵌套類方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問題及解決2. python爬蟲實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊3. 如何在jsp界面中插入圖片4. 詳解盒子端CSS動(dòng)畫性能提升5. asp批量添加修改刪除操作示例代碼6. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)7. .NET6打包部署到Windows Service的全過程8. Ajax返回值類型與用法實(shí)例分析9. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問題10. ajax請(qǐng)求后臺(tái)得到j(luò)son數(shù)據(jù)后動(dòng)態(tài)生成樹形下拉框的方法
