gpt4 book ai didi

python - 在 GAE 中存储字典列表

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:16 25 4
gpt4 key购买 nike

我有一个包含大约 20 个对象的列表,对于每个对象,我返回一个包含 10 个字典的列表。
我正在尝试为 GAE 列表中的每个对象存储 10 个字典的列表;我认为我没有正确编写代码来将此信息存储到 GAE。
这是我所拥有的:在我的主要请求处理程序之前,我有这个类:

class Tw(db.Model):
tags = db.ListProperty()
ip = db.StringProperty()

在我的主要请求处理程序中,我有以下内容:

for city in lst_of_cities: # this is the list of 20 objects
dict_info = hw12.twitter(city) # this is the function to get the list of 10 dictionaries for each object in the list
datastore = Tw() # this is the class defined for db.model
datastore.tags.append(dict_info) #
datastore.ip = self.request.remote_addr
datastore.put()

data = Data.gql("") #data entities we need to fetch

我不确定这段代码是不是写的。如果有人可以提供帮助,我们将不胜感激。

最佳答案

欢迎来到 Stack Overflow!

我看到了一些问题:

  1. 字典不是supported value types用于 App Engine 属性。
  2. 您只存储最后一个实体;其余的被丢弃。
  3. 您使用的是 ListProperty,但不是追加 dict_info 的每个元素,而是对整个列表进行一次追加。

由于您无法在属性中存储原始字典,因此您需要将其序列化为其他格式,例如 JSON 或 pickle。这是一个使用 pickle 的修改示例:

from google.appengine.ext import db
import pickle

class Tw(db.Model):
tags = db.BlobProperty()
ip = db.StringProperty()

entities = []
for city in lst_of_cities:
dict_info = hw12.twitter(city)
entity = Tw()
entity.tags = db.Blob(pickle.dumps(dict_info))
entity.ip = self.request.remote_addr
entities.append(entity)

db.put(entities)

稍后获取实体时,您可以使用 pickle.loads(entity.tags) 检索字典列表。

关于python - 在 GAE 中存储字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5874009/

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