1 from datetime
import date, datetime
5 from .sim.JSON
import Json
6 from .sim
import JSONEncoder
12 if isinstance(value, list)
and len(value) > 0:
14 if isinstance(item, dict):
16 elif isinstance(item, list)
and len(item) > 0:
18 elif isinstance(item, tuple)
and len(item) > 0:
28 for key, value
in data.items():
29 if isinstance(value, dict):
32 elif isinstance(value, list)
and len(value) > 0:
36 elif isinstance(value, tuple)
and len(value) > 0:
41 setattr(self, key, value)
48 AJson.parse(**kwargs):将任意对象解析成json字符串
49 AJson.load(**kwargs):将字符串解析成字典
54 if isinstance(obj, datetime):
55 return obj.strftime(
'%Y-%m-%d %H:%M:%S')
56 elif isinstance(obj, date):
57 return obj.strftime(
'%Y-%m-%d')
63 return AJson.date_encoder(obj)
67 return AJson.date_encoder(obj)
70 def parse(obj, ignore_name=None, bf=False, end_load=False):
71 """作者:CACode 最后编辑于2021/4/27
87 当两者同时存在时,默认使用end_load功能
91 :param ignore_name: 在对象中放入需要忽略的字段名
93 :param end_load:是否需要在最后转成字典格式
96 def json_to_str(_obj):
100 json_f = functools.partial(
102 json_str = json_f(_obj)
105 def parse_list(list_obj):
108 放置了递归函数,所以不必担心解析报错或者解析不到位
111 for item
in list_obj:
113 if isinstance(item, list):
115 obj_dicts.append(parse_list(item))
116 elif isinstance(item, tuple):
118 return obj_dicts.append(parse_list(list(item)))
119 elif isinstance(item, dict)
or isinstance(item, str):
121 obj_dicts.append(item)
122 elif isinstance(item, object):
124 obj_dicts.append(parse_obj(item))
126 obj_dicts.append(item)
129 def parse_obj(_obj) -> str:
134 if isinstance(_obj, dict):
135 _dict = _obj.__dict__
137 for key, item
in _dict.items():
139 key: parse_list(item)
141 elif isinstance(_obj, list):
143 obj_dicts.append(parse_list(_obj))
145 elif isinstance(_obj, str):
151 obj_dicts = parse_dict(_obj.__dict__)
152 except AttributeError
as e:
157 def parse_dict(_obj):
158 """作者:CACode 最后编辑于2021/4/27
162 if isinstance(_obj, dict):
163 for key, value
in _obj.items():
164 if isinstance(value, list):
165 obj_dicts[key] = parse_list(value)
166 elif isinstance(value, dict):
167 obj_dicts[key] = parse_dict(value)
174 if isinstance(obj, list):
175 obj = parse_list(obj)
176 elif isinstance(obj, dict):
177 obj = parse_dict(obj)
178 elif isinstance(obj, object):
181 result = json_to_str(obj)
183 return AJson.load(result)
185 return AJson.beautiful(AJson.load(result))
190 """作者:CACode 最后编辑于2021/4/27
193 if isinstance(item, list):
196 _dats.append(AJson.load(i))
198 elif isinstance(item, tuple):
202 _dats.append(AJson.load(i))
204 elif isinstance(item, dict):
207 elif isinstance(item, str):
209 return AJson.loads(item)
210 elif isinstance(item, object):
214 return AJson.loads(item)
218 """作者:CACode 最后编辑于2021/4/27
221 return AJson.dumps(_data, sort_keys=
True, indent=4, separators=(
',',
':'))
225 if isinstance(json_data, list):
227 elif isinstance(json_data, tuple):
229 elif isinstance(json_data, dict):