我在尝试将列表保存到 Google 数据存储区时遇到错误:
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'>
当我遇到那个错误时...我完全卡住了...谢谢!
编辑:
下面是我如何定义和分配 contactCountry:
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 最初作为 db.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]
并重建它。清除我的数据存储并重试后,由于某种原因,完全相同的代码再次起作用。
关于python - 无法将列表保存到 Google App Engine 上的 db.ListProperty(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20333344/