gpt4 book ai didi

python - 如何在棉花糖(+ sqlalchemy)中将嵌套对象与父对象合并?

转载 作者:行者123 更新时间:2023-11-28 16:36:43 25 4
gpt4 key购买 nike

来自他们的例子 https://marshmallow.readthedocs.org/en/latest/quickstart.html#nesting-serializers

如何获得合并结果而不是嵌套结果?预期结果:

user = User(name="Monty", email="monty@python.org")
blog = Blog(title="Something Completely Different", author=user)
serialized = BlogSerializer(blog)
serialized.data
# {'created_at': 'Sun, 10 Nov 2013 16:10:57 -0000',
# 'email': u'monty@python.org',
# 'name': u'Monty',
# 'title': u'Something Completely Different'}

最佳答案

我没有改变 Marshmallow 序列化对象的方式,而是决定使用 data_handler。
这看起来像是一个 hack(老实说,确实如此),但我真的需要将数据展平。

此解决方案的优势在于,当我不需要它时,可以很容易地删除hack

@BlogSerializer.data_handler
def flatten(serializer, data, obj):
if 'author' in data:
author = data['author']
del data['author']
return dict(author, **data)
else:
return data

您可以轻松地使此方法更通用,并使用要展平的属性列表。我目前不需要那种抽象级别。

感谢@justanr 的提示。

关于python - 如何在棉花糖(+ sqlalchemy)中将嵌套对象与父对象合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25128994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com