无法将列表保存到数据库。GoogleApp Engine 上的 ListProperty()



我在尝试将列表保存到谷歌数据存储时出错:

raise BadValueError('Property %s must be a list' % self.name)
BadValueError: Property contactCountry must be a list

contactCountry已创建为列表:

contactCountry = list()

后附:

contactCountry.append(xmlDoc.getElementsByTagName('country')[0].childNodes[0].nodeValue)

对于这个特定的例子,只有一个元素,但它仍然是一个列表。。。然而,当我试图保存它时,却出现了错误。有什么想法吗?

输出:

logging.info(contactCountry)
logging.info(type(contactCountry))

是:

INFO     2013-12-02 16:38:27,349 downloadAndUpdate.py:72] [u'United States']
INFO     2013-12-02 16:38:27,349 downloadAndUpdate.py:73] <type 'list'>

当我出现错误时。。。我完全被卡住了。。。谢谢

编辑:

以下是我如何定义和分配联系人国家:

Database = models.Database() #construct Database object
Information =  Database.get_or_insert(Identifier)
Information.contactCountry = contactCountry

同一目录中的models.py文件的相关部分具有以下结构:

class Database(db.Model):
        contactCountry = db.ListProperty(str)

第2版:

我能够让它工作起来——contactCountry最初是作为数据库在我的数据存储中的。StringProperty(),并且已经填充了值。我想将contactCountry更改为列表,所以我将models.py文件更改为db。ListProperty(str),这是我开始看到错误的时候。我决定尝试使用清除数据存储

$ dev_appserver.py --clear_datastore [myappname]

并重新构建它。在清除我的数据存储并重试后,出于某种原因,同样的代码再次工作。

我能够让它工作起来——contactCountry最初作为db.StringProperty()在我的数据存储中,并且已经填充了值。我想将contactCountry更改为列表,所以我将models.py文件更改为db.ListProperty(str),这就是我开始看到错误的时候。我决定尝试使用清除数据存储

$dev_appserver.py--clear_datastore[myappname]

并重新构建它。在清除我的数据存储并重试后,出于某种原因,同样的代码再次工作。

相关内容

最新更新