2017-01-18 6 views
1

私はフラスコを使用しています。私は自分のデータベースにSQLalchemyを使い始めました。私はこのような辞書何かの巨大なリストを持っている:データベースに保存されていないレコードだけをデータベースに保存する方法は?

data = [{'id': '3242342342', 'name': 'sfsdfs fsdcd'}, 
     {'id': '2131231221', 'name': 'sfsddddfs fsdcd'}, 
     {'id': '3434343544', 'name': 'sfsfdgfddfs fsdcd'}, 
     {'id': '5465443545', 'name': 'sfsiiiiiiidfs fsdcd'}] 

をし、私はこのようなクラスがあります:彼らはしていない場合

class Record(db.Model): 
    id = db.Column(db.String(20), primary_key=True) 
    name = db.Column(db.String(50)) 

私のタスクはdataからすべてのレコードを処理し、それらを追加することですデータベースはまだあり、更新されている場合は更新します。それを行う正しい方法は何ですか? おかげ

答えて

0

あなたがforループでデータを反復処理することができますが、私はそれが最善の方法かどうかであることを確認していない:

for elem in data: 
    for id, name in elem.items(): 
     record = Record.query.get(id) 
     if record:  
      record.id = id 
      record.name = name 
     else: 
      record = Record(id=id, name=name) 
     session.add(record) 
関連する問題