Ich versuche, ein Wörterbuch in eine Postgres-Datenbank über SQLAlchemy in Python zu laden. Das Wörterbuch, wie es Strom vorhanden ist:Einfügen eines Wörterbuchs in Postgres über SQLAlchemy
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'}}
Ich habe den folgenden Code geschrieben (basierend aus anderen Tutorials/Fragen, die ich habe hier und online gefunden). Ich könnte das schaffen, wenn ich nur 1 Datensätze einfügen würde - da ich das Attribut manuell PlayerStats zuweisen könnte. Aber mit dem Wörterbuch, das mehrere Datensätze hat, weiß ich nicht, wie ich sie alle auf die Sitzungsanweisungen übergebe.
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 #
Ich bin sicher, dass ich etwas einfach fehlt bin, aber wie gehe ich alle Inhalte des Finaldata-Wörterbuch auf die SQLAlchemy Anweisung hinzufügen?
Großartig. Vielen Dank!! Ist es in Bezug auf Best Practices sinnvoller, die inneren Wörterbücher zu entpacken und in ein großes Wörterbuch zu übersetzen? Wenn ja, gibt es einen korrekten Prozess dazu? –
@GeorgeRodman Nein, ich denke nicht, dass Sie das Wörterbuch vor der Verarbeitung transformieren müssen, es sei denn, Sie sind derjenige, der das Wörterbuch generiert und es anders erzeugen könnte. Ansonsten akzeptiere es so, wie es ist, und wandle es direkt in Datenbankobjekte um, wie oben gezeigt. Zwischenstruktur würde nur zur Verwirrung beitragen. – nosklo