使用具有外键的csv文件填充sqlalchemy表将null保存到数据库

时间:2015-01-19 10:16:20

标签: python sqlalchemy pyramid flask-sqlalchemy

我试图使用带有外键约束的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)

1 个答案:

答案 0 :(得分:0)

尝试Song(**song_values) - 将dict解压缩到参数列表。