我正在尝试通过上传格式化文件(包含多行)来更新数据存储区。文件中的每一行都将在Google App引擎数据存储区中创建一条新记录。我不确定如何在for循环中向数据存储区添加多行。我试过了:
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:属性不是多行的。我猜它是因为'record'变量引用了每次迭代的相同实例。
对不起,如果这是一个愚蠢的问题。我是python和谷歌应用程序引擎的新手。提前感谢您的意见!
答案 0 :(得分:4)
for line in lines
会将换行符保留在行尾; StringProperty中不允许使用换行符,除非它被指定为多行。
尝试record.something = line.rstrip()
删除换行符。
答案 1 :(得分:0)
您可以使用批量加载程序将文件中的数据加载到数据存储区中。 http://code.google.com/appengine/docs/python/tools/uploadingdata.html