我需要存储一些看起来像这样的数据:
xyz 123 abc 456 hij 678 rer 838
现在我将它存储为传统的字符串和整数模型,并放入数据存储区。但是数据会定期更改,并且在将其视为COLLECTION时仅相关。因此,它需要存储为列表列表或对象列表,据我所知,如果没有酸洗,这两者都无法真正完成。有人可以帮忙吗?即使将其存储为文本文件也可以:S
编辑:我似乎对细节模糊不清。
我正在从外部源采样一些数据(如果重要的话,通过BeautifulSoup / http2lib进行抓取)。然后,这个数据需要整体存储,因为它将被绘制在图表上。数据发生了变化(但不常见 - 可能每周一次)。由于数据集非常简单(字面意思是您在上面看到的,1个字符串字段和1个整数),我认为将它们存储为列表列表更容易,然后将它们实际存储在模型中。我有一种感觉,我过分关注数据需要作为一个大块存储在一起的事实,跳过了一个更简单的解决方案。
我将同时存储500多个这些数据位。
答案 0 :(得分:1)
您可以将它们存储为两个单独的列表,并且只在实际访问它们时担心将它们组合在一起。像这样:
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
答案 1 :(得分:0)
如果它只是一个元组列表/两个“列”,你可以只使用一个交替列表和一个ListProperty吗?如果数据具有一致的维度,很小并且不需要索引,那么这将没有问题。
e.g。要对列表中给出的示例进行编码,请执行以下操作:
# i forget if mixed types are allowed, but you get the idea. ["xyz", 123, "abc", 456, "hij", 678, "rer", 838]