[Python] fix model to dict (#11234)

* fix model to dict

* add unit test

* add unit test

* update sample files
This commit is contained in:
jiangyuan
2022-01-26 01:50:59 +08:00
committed by GitHub
parent 5d2a3698e2
commit 8b3cad0692
14 changed files with 374 additions and 19 deletions

View File

@@ -1657,6 +1657,7 @@ def model_to_dict(model_instance, serialize=True):
attribute_map
"""
result = {}
extract_item = lambda item: (item[0], model_to_dict(item[1], serialize=serialize)) if hasattr(item[1], '_data_store') else item
model_instances = [model_instance]
if model_instance._composed_schemas:
@@ -1686,14 +1687,17 @@ def model_to_dict(model_instance, serialize=True):
res.append(v)
elif isinstance(v, ModelSimple):
res.append(v.value)
elif isinstance(v, dict):
res.append(dict(map(
extract_item,
v.items()
)))
else:
res.append(model_to_dict(v, serialize=serialize))
result[attr] = res
elif isinstance(value, dict):
result[attr] = dict(map(
lambda item: (item[0],
model_to_dict(item[1], serialize=serialize))
if hasattr(item[1], '_data_store') else item,
extract_item,
value.items()
))
elif isinstance(value, ModelSimple):