WebソースからCSVファイルを読み取っていて、GAEデータストアに保存したいと思います。CSVデータにはヘッダー行があり、少し操作するだけでデータストアのフィールドと一致します(たとえば、CSVファイルのスペースをアンダースコアに置き換えてデータストアと一致させます)。CSVファイルの各行のフィールドを繰り返し処理してデータストアに配置したいと思います。
私の質問は、データストア内のフィールドを文字列で参照し、その値を別の文字列に設定するにはどうすればよいですか?
from google.appengine.ext import db
from urllib import urlopen
from csv import DictReader
class Table(db.Model):
field_one = db.StringProperty() # equivalent to 'field one' column in CSV data
field_two = db.StringProperty() # equivalent to 'field two' column in CSV data
def store_csv_data(url):
# Request the url with the csv data
f = urlopen(url)
csv_dict = DictReader(f, delimiter=',', quotechar='"')
for line in csv_dict:
# Do some processing on the data (not shown here)
row = Table()
for field in line:
db_field = field.replace(' ','_') # Make the csv field match the db field
db_value = line[field] # The value I want to store in the datastore
row.db_field = db_value # THIS IS WHERE THE CODE FAILS
row.put()
これは実際にはエラーを生成せず、データストアに空の行を作成するだけです。