2014-07-24 149 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

沒有神奇的遷移方式。您需要編寫一個讀取文件並逐個保存到數據存儲區的程序。編寫這個程序並不是特別困難。給它只要需要,它不會永遠......

相關問題