Skip to main content
 首页 » 编程设计

python之在 GAE 中存储对象列表

2025年05月04日1598°冷暖

我需要存储一些看起来像这样的数据:

xyz 123 
abc 456 
hij 678 
rer 838 

现在我只是将其存储为传统的字符串和整数模型,然后放入数据存储区。但是数据会定期更改,并且仅在作为集合查看时才相关。因此,它需要存储为列表列表或对象列表,据我所知,如果不进行酸洗,这两者都无法真正完成。谁能帮忙?即使将其存储为文本文件也可能有效:S

编辑:我似乎对细节有点含糊。

我正在从外部来源采样一些数据(如果重要的话,通过 BeautifulSoup/http2lib 进行抓取)。然后需要将此数据作为一个整体存储,因为它将绘制在图表上。数据变化(但不经常——也许每周一次)。由于数据集非常简单(字面意思是您在上面看到的,1 个字符串字段和 1 个整数),我认为将它们存储为列表列表更容易,然后将它们实际存储在模型中。我觉得我已经跳过了一个更简单的解决方案,因为我过于关注数据需要作为一个大块存储在一起的事实。

我将一次性存储 500 多个这样的数据位。

请您参考如下方法:

您可以将它们存储为两个单独的列表,并且只需要在实际访问它们时才担心组合它们。像这样:

class MyModel(db.Model): 
    my_strings = db.StringListProperty() 
    my_ints = db.ListProperty(int) 
 
    def get_data(self): 
        return zip(self.my_strings, self.my_ints) 
 
    def set_data(self, data): 
        self.my_strings = [element[0] for element in data] 
        self.my_ints = [element[1] for element in data] 
 
    data = property(get_data, set_data) 

这样,你就可以做类似的事情了

entity = MyModel() 
entity.data = [("xyz", 123), ("abc", 456), ("hij", 678)] 
entity.put() 
 
# ... 
 
for string_value, int_value in entity.data: 
    # do something