2014-07-24 156 views
0

我有这种形式的CSV文件:谷歌App Engine数据存储迁移

Username, Password_Hash 
noam , ************ 
paz  , ************ 

我想这个CSV导入到数据存储区,因此数据可以从蟒蛇利用该模型来访问:

class Company(ndb.Model): 
    Username = ndb.StringProperty() 
    Password_Hash= ndb.StringProperty(indexed=False) 

当然,手动导入一个接一个不是一个选项,因为真实文件非常大。 我不知道gcloud preview datastore upload is based on使用哪个文件结构。

谷歌在这个问题上缺乏良好的文档。

回答

2

如何像:

from google.appengine.api import urlfetch 
from models import Company 

def do_it(request): 
    csv_string = 'http://mysite-or-localhost/table.csv' 
    csv_response = urlfetch.fetch(csv_string, allow_truncated=True) 

    if csv_response.status_code == 200: 

     for row in csv_response.content.split('\n'): 
      if row != '' and not row.lower().startswith('Username,'): 
       row_values = row.split(',') 

       new_record = Company(
        Username = row_values[0], 
        Password_Hash = row_values[1] 
       ) 
       new_record.put() 

    return Response("Did it", mimetype='text/plain') 
+0

非常感谢!我认为可能有另一种方式。但我认为这也可以做到。 – thecohenoam

2

没有神奇的迁移方式。您需要编写一个读取文件并逐个保存到数据存储区的程序。编写这个程序并不是特别困难。给它只要需要,它不会永远......

相关问题