【python】复杂对象的创建过程与转化为json

来源:互联网 发布:全球软件行业市场规模 编辑:程序博客网 时间:2024/05/29 16:00

假设我们要实现以下这样一个json,用java很容易,用python如何实现呢?

{
"data": {
"KeyDetails": "",
"action": {
"a": "",
"b": ""
},
"keyWord": [],
"ordering": "",
"para": {
"c": "",
"d": "",
"e": ""
},
"p": "",
"rank": "",
"type": "1",
"url": "",
"verify": {
"f": "",
"g": ""
}
},
"resultCode": "1",
"resultMsg": "",
"time": "2017-09-04 14:59:18"
}

先创建对象body

#!/user/bin/python
# -*- coding:utf-8 -*-
from hhh import hhh
class Body(object):
# 初始化
def __init__(self, **kwargs):
resp = kwargs.get('resp', hhh())
self.resultCode = kwargs.get('resultCode', '')
self.resultMsg = kwargs.get('resultMsg', '')
self.time = kwargs.get('time', '')
self.data = hhh(p=resp.p,
type=resp.type,
keyWord=resp.keyWord,
KeyDetails=resp.KeyDetails,
ordering=resp.ordering,
rank=resp.rank,
url=resp.url,
a=resp.action.a,
b=resp.action.b,
c=resp.para.c,
d=resp.para.d,
e=resp.para.e,
f=resp.verify.f,
f=resp.verify.g
)

接下来创建hhh

#!/user/bin/python
#-*- coding:utf-8 -*-
class hhh(object):
# 初始化
def __init__(self, **kwargs):
self.p= kwargs.get('p', '')
self.type = kwargs.get('type', '')
self.keyWord = kwargs.get('keyWord', [])
self.KeyDetails = kwargs.get('KeyDetails', '')
self.ordering = kwargs.get('ordering', '')
self.rank = kwargs.get('rank', '')
self.url = kwargs.get('url', '')
aa= kwargs.get('a', '')
bb= kwargs.get('b', '')
cc= kwargs.get('c', '')
dd= kwargs.get('d', '')
ee= kwargs.get('e', '')
ff= kwargs.get('f', '')
gg= kwargs.get('g', '')
self.action = Action(aa, bb)
self.para = Para(cc, dd, ee)
self.verify = Verify(ff, ff)

然后分别创建Action,Para,Verify 类

class Action(object):
def __init__(self, a, b):
self.a= a
self.b= b
class Para(object):
def __init__(self, c, d, e):
self.c= c
self.d= d
self.e= e
class Verify(object):
def __init__(self, f, g):
self.f= f
self.g= g

创建body过程:

body.resultMsg = ‘获取成功’ 
body.resultCode = ‘1’ 
body.data = response # 已经创建好的hhh对象 
body.time = datetime.datetime.now().strftime(‘%Y-%m-%d %H:%M:%S’)

转成json过程:

result = json.dumps(body, default=lambda o: o.dict, sort_keys=True, indent=4)


知行办公,专业移动办公平台 https://zx.naton.cn/

原创团队
【总监】十二春秋之,3483099@qq.com;
【Master】zelo,616701261@qq.com;【运营】狼行天下,897221533@qq.com;
【产品设计】流浪猫,364994559@qq.com;【体验设计】兜兜,2435632247@qq.com;
【iOS】淘码小工,492395860@qq.com;iMcG33K,imcg33k@gmail.com;
【Android】人猿居士,1059604515@qq.com;思路的顿悟,1217022114@qq.com;
【java】首席工程师MR_W,feixue300@qq.com;【测试】土镜问道,847071279@qq.com
【数据】喜乐多,42151960@qq.com;【安全】保密,你懂的。



原创粉丝点击