我试图使用带有外键约束的csv来填充我的表。问题是它在数据库中将所有都保存为无。阅读csv文件后,我将列表更改为字典(song_params)。我不能在哪里,我可以把它弄错,因为所有似乎都是我希望它工作的方式
header = ['artist', 'album', 'genre', 'song', 'price', 'download_link', 'duration']
for row in csv_file:
song_params = dict(zip(header, row))
song_values = {}
dbsession = DBSession()
for key, value in song_params.iteritems():
if key == 'artist':
martist = dbsession.query(Artist).filter_by(artist = value).first()
song_values['artist'] = martist
else:
song_values[key] = value
if key == 'album':
malbum =dbsession.query(Album).filter_by(album_name = value).first()
song_values['album'] = malbum
else:
song_values[key] = value
if key == 'genre':
mgenre = dbsession.query(Genre).filter_by(genre = value).first()
song_values['genre'] = mgenre
else:
song_values[key] = value
song = Song(song_values)
dbsession.add(song)
答案 0 :(得分:0)
尝试Song(**song_values)
- 将dict解压缩到参数列表。