【问题标题】:does ndb have a list propertyndb 有没有 list 属性
【发布时间】:2012-08-07 09:42:09
【问题描述】:

而不是单个 StringProperty(), 我想存储一个字符串列表

class BlogPost(ndb.Model):
    s1 = ndb.StringProperty(required=True)
    s2 = ndb.StringProperty(required=True)
    s3 = ndb.StringProperty(required=True)

我宁愿去

class BlogPost(ndb.Model):
    my_strings = ndb.StringListProperty() # does this exist?

【问题讨论】:

    标签: python google-app-engine list google-cloud-datastore


    【解决方案1】:

    是的,使用重复属性:

    repeated=True 的任何属性都将成为重复属性。这 属性接受基础类型的值列表,而不是 单值。例如,使用定义的属性的值 IntegerProperty(repeated=True) 是一个整数列表。

    查看文档:Repeated Properties

    【讨论】:

    • 注意由程序员来确保列表的长度为 3(如果你只想要一个长度为 3 的列表)
    【解决方案2】:

    此外,如果您只对列表进行操作并且不需要索引,则可以使用ndb.JsonProperty 来解析具有非空有效 Json 对象的列表。通过这种方式,您也可以压缩您的数据,但如果您不将其启用为 arg,则会丢失索引,因为它存储为 Blob。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-19
      • 2020-08-09
      • 2019-03-19
      • 2021-01-04
      • 2014-06-05
      • 2021-07-26
      • 2019-04-29
      • 1970-01-01
      相关资源
      最近更新 更多