如何在谷歌应用引擎数据存储中添加多个记录
我正在尝试通过上传一个格式化的文件来更新数据存储(这个文件包含多行内容)。文件中的每一行都会在谷歌应用引擎的数据存储中创建一个新的记录。我不太确定如何在一个循环中将多行添加到数据存储中。我试过:
class Records(db.Model):
something = db.StringProperty()
.....
for line in lines #lines is a file contains multiple lines
record = Records(parent = PARENT_KEY)
record.something = line
record.put()
但是这不管用,错误信息是 BadValueError: Property something is not multi-line。我猜这可能是因为 'record' 这个变量在每次循环中都指向同一个实例。
抱歉如果这个问题很傻。我对 Python 和谷歌应用引擎还很陌生。提前感谢你的帮助!
2 个回答
0
你可以使用批量加载工具,把文件里的数据导入到数据存储中。想了解更多,可以查看这个链接:http://code.google.com/appengine/docs/python/tools/uploadingdata.html
4
for line in lines
这个写法会保留每行末尾的换行符;在一个字符串属性中,如果没有特别标明为多行,是不允许有换行符的。
可以试试 record.something = line.rstrip()
这个方法,它可以去掉行末的换行符。