【问题标题】:How do you iterate over StringProperty as a string object?您如何将 StringProperty 作为字符串对象进行迭代?
【发布时间】:2020-05-27 16:44:36
【问题描述】:

我的代码如下:

class sample(ndb.Model):
    text=ndb.StringProperty()

class sample2(webapp2.RequestHandler):
   def get(self, item):
       q = sample.query()
       q1 = query.filter(item in sample.text)

我想在示例中的文本中搜索特定的单词(项目)。我该怎么做?我试过这个链接,但它并没有真正回答我的问题-How do I get the value of a StringProperty in Python for Google App Engine?

【问题讨论】:

    标签: python string python-2.7 google-app-engine webapp2


    【解决方案1】:

    不幸的是,您不能对数据存储(或任何其他数据库)进行类似的查询。数据存储区查询是基于索引的,索引不能存储复杂的信息,比如字符串是否有某个子字符串。

    App Engine 还有一个Search API,您可以使用它来进行更复杂的文本搜索。

    【讨论】:

    • 是的,你是对的。我问了一个同样的疑问,他们说了同样的话,并建议我使用文档和索引。
    【解决方案2】:

    首先,Python 2 is deprecated 自 2020 年 1 月 1 日起,Google Cloud Platform 强烈鼓励 migration 使用更新的运行时。此外,不再推荐使用 ndb 库,并且需要更新依赖它的代码,然后才能开始使用 Python 3 运行时。所有这些原因让我建议你在花太多时间之前直接切换。

    话虽如此,您可以在有关queriesproperties 的ndb 库文档中找到答案。 Github code samples也有几个例子。

    首先您需要使用query() 方法检索实体,然后通过python 对象属性表示法访问它的数据。或多或少会如下所示:

    q = sample.query()            # Retrieve sample entity.
    substring = 'word' in q.text  # Returns True if word is a substring of text
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 2016-11-28
      • 2014-12-23
      • 2014-04-03
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多