Django hat den Komfort manage.py
Befehl dumpdata
which can be configured to dump an entire database as JSON
.Lesen Sie die gesamte Datenbank mit sqlalchemy und Dump als JSON
Derzeit bin ich auf sqlalchemy
mit eingeschlossen, und ich möchte die gleiche Sache tun:
Nehmen Sie als Eingabe eine Verbindungszeichenfolge wie 'mysql+pymysql://user:[email protected]:3306/'
und den Inhalt der Datenbank erhalten, wie JSON
(I benötige nicht alle Meta-Informationen, die Django zur Verfügung stellt, aber das macht mir nichts aus).
ich found this question erarbeiten, wie SQLAlchemy Objekte zu JSON-Dump und this from the sqlalchemy documentation darlegt, wie alle Tabellennamen aus einer Datenbank zu erhalten:
meta = MetaData()
input_db = f'sqlite:///tmpsqlite'
engine = create_engine(input_db)
meta.reflect(bind=engine)
print(meta.tables)
Wie rufe ich alle Inhalte dieser Tabellen und sie dann zu JSON
konvertieren ? Gibt es einen integrierten Befehl in sqlalchemy
ähnlich wie django dumpdata Funktionalität?
Beachten Sie, dass die 'zip (...)' redundant ist. A [ 'RowProxy'] (http://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.RowProxy) ist eine Abbildung in seinem eigenen Recht, und Sie können es einfach passieren zu' dict () 'Konstruktor:' dict (row) '. –
Was Sie erhalten, wenn Sie 'dict()' ein Zeilen-Proxy-Objekt übergeben. –