我正在从 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()
这实际上不会产生任何错误,它只是在数据存储中创建了一堆空行。