私はPythonでSQLAlchemy経由でPostgresデータベースに辞書をロードしようとしています。それが現在存在する辞書です:SQLAlchemy経由でPostgresに辞書を挿入
FinalData = {'GAME_ID': {0: '0021600457', 1: '0021600457', 2: '0021600457', 3:
'0021600457', 4: '0021600457', 5: '0021600457'}, 'TEAM_ID': {0: 1610612744, 1:
1610612744, 2: 1610612744, 3: 1610612744, 4: 1610612744, 5: 1610612744},
'TEAM_ABBREVIATION': {0: 'GSW', 1: 'GSW', 2: 'GSW', 3: 'GSW', 4: 'GSW', 5:
'GSW'}}
私が書かれた次のコード(私はここでは、オンライン見つけたオフに基づいて他のチュートリアル/質問を)持っています。 1つのレコードしか挿入していない場合、PlayerStatsに属性を手動で割り当てることができたので、この作業を行うことができました。しかし、複数のレコードを持つディクショナリでは、セッション文に一括して渡す方法がわかりません。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class PlayerStats(Base):
__tablename__ = 'PlayerStats'
GAME_ID = Column(String(10), primary_key=True)
TEAM_ID = Column(String(10))
TEAM_ABBREVIATION = Column(String(8))
###################################################
## I DON'T KNOW WHAT GOES HERE TO BRIDGE THE GAP ##
###################################################
engine = create_engine('postgres://.........')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
session.add(FinalData) # I'M ASSUMING I NEED TO ITERATE OVER THIS #
私は、単純な何かが欠けてると確信しているが、どのように私はステートメントを追加SQLAlchemyの上にFinalData辞書のすべての内容を渡すのですか?
グレート。ありがとうございました!!ベストプラクティスの面では、内部の辞書を解凍して1つの大きな辞書に変換する方が理にかなっていますか?もしそうなら、これを行う正しいプロセスがありますか? –
@GeorgeRodmanいいえ、あなたが辞書を生成していて、それを別の方法で生成できるのでなければ、辞書を処理する前に変換する必要はないと思います。さもなければそれをそのまま受け入れ、上記のようにデータベースオブジェクトに直接変換してください。中間構造は混乱を招くだけです。 – nosklo