首页 > 后端开发 > Golang > 将数据存储实体从 Python 加载到 Go 时如何处理嵌套结构错误?

将数据存储实体从 Python 加载到 Go 时如何处理嵌套结构错误?

Patricia Arquette
发布: 2024-10-25 08:08:28
原创
674 人浏览过

How to Handle Nested Struct Errors When Loading Datastore Entities from Python to Go?

将数据存储实体从 Python 加载到 Go:了解嵌套结构错误

在 Google AppEngine 中,尝试从 Python 中读取数据存储实体Go 项目可能会导致错误:

datastore: flattening nested structs leads to a slice of slices: field "Messages"
登录后复制

根本原因

该错误源于 Python 和 Go 编程语言之间不兼容的数据结构。在提供的Python模型中,ModelA包含重复的ModelB类型的属性消息。在 Go 中,ModelA 和 ModelB 都定义了切片字段,从而形成嵌套切片结构。

解决方案

Go 数据存储包在支持嵌套切片方面受到限制。要解决此问题,必须调整 Python 或 Go 中的数据结构:

Python 模型调整

  • 将 ModelA 中的消息更改为单个 ModelB输入而不是切片。

进行模型调整

  • 从 ModelA 中删除切片字段(即,使消息简单地 ModelB)。
  • 在 ModelA 的 Load 方法中实现自定义解码逻辑来处理嵌套结构(如提供的 Go 代码中所示)。

注意事项

  • 选择在 Python 中解决该问题需要重写现有数据。
  • 在 Go 中实现自定义解码可能很复杂且容易出错。

以上是将数据存储实体从 Python 加载到 Go 时如何处理嵌套结构错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板