gpt4 book ai didi

python - ListProperty 与 GoogleAppEngine

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:26 26 4
gpt4 key购买 nike

如何使用 Google App Engine 分配 ListProperty?

    name = self.request.get("name")
description = self.request.get("description")
list = '''insert code here'''

我希望列表像字典一样工作,这在 Google App Engine 中是否可行,如果可行,如何:

[wordone:得分; wordtwo : 分数;第三个词:得分]

^我想要列表属性存储这样的一些数据,这怎么可能?

最佳答案

您实际上无法将真正的字典存储为 ListProperty 中的类型(它仅支持数据存储属性类型,其中 dict 不是一种),所以你将无法获得你正在寻找的行为。所有数据是否都相同(即每个元素代表一个单词分数)?假设将每个词作为其自己的属性存储在模型上没有意义,一个“肮脏”的解决方案是制作一个 str 类型的 ListProperty,然后附加单词和分数作为单独的元素。然后,当您在列表中搜索一个词时,您将返回该词的索引位置处的值 + 1。这看起来像:

class MyEntity(db.Model):
name = db.StringProperty()
description = db.TextProperty()
word_list = db.ListProperty()

然后你可以添加这样的词:

new_entity = MyEntity()
new_entity.word_list = ['word1', 1, 'word2', 2, 'word3', 10]

然后您可以查询特定实体,然后检查其 word_list 属性(一个列表),查找您的目标词并返回其后一个位置的元素。


更复杂的建议

但是,如果这不是一个选项,您可以考虑创建另一个模型(比如说 WordScore),它看起来像:

class WordScore(db.Model):
word = db.StringProperty()
score = db.IntegerProperty()

然后,每当您需要添加新分数时,您将创建一个 WordScore 实例,填写属性,然后将其分配给适当的实体。我还没有测试过这些,但我的想法是这样的:

# Pull the 'other' entity (this would be your main class as defined above)
q = OtherEntity.all()
q.filter('name =', 'Someone')
my_entity = q.get()

# Create new score
ws = WordScore(parent=my_entity)
ws.word = 'dog'
ws.score = 2
ws.put()

然后你可以通过做这样的事情来为'Someone'提取dog的分数(同样,现在完全未经测试 - 请注意:)):

# Get key of 'Someone'
q = OtherEntity.all()
q.filter('name =', 'Someone')
my_entity = q.get().key()

# Now get the score
ws = WordScore.all()
ws.filter('word = ', 'dog').ancestor(my_entity)
word_score = ws.get().score

关于python - ListProperty 与 GoogleAppEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13559521/

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