[PYTHON] Durchsuchen Sie die Tabelle mit sqlalchemy und erstellen Sie ein Wörterbuch

Durchsuchen Sie die DB-Tabelle nach gespeicherter Ausführung und erstellen Sie ein Wörterbuch

Bereiten Sie beispielsweise eine gespeicherte Prozedur in SQL Server vor, die einen Datensatz zurückgibt, der mehrere Datensätze einer Tabelle horizontal erweitert, den mit SQL Alchemy gespeicherten Datensatz ausführt und das Ausführungsergebnis (vle) mit fetch one () abruft. , Holen Sie sich den Spaltennamen (clm) der Daten mit den Schlüsseln (). Wenn Sie diese beiden mit einer Zip-Funktion auflisten und daraus ein Diktatwörterbuch machen, können Sie die Verarbeitung erweitern, z. B. das Erstellen einer XML-Datei mit elementTree im nachfolgenden Prozess.

make_dict.py


    import sqlalchemy

    ym = 201603

    CONNECT_INFO = 'mssql+pyodbc://hogehoge' #hoge hoge ist jede DNS(Odbc-Verbindung)
    engine = sqlalchemy.create_engine(CONNECT_INFO, encoding='utf-8')

    #Sitzungsgenerierung
    Session = sqlalchemy.orm.sessionmaker(bind=engine)
    session = Session()
    
    #Ausführung gespeicherter Prozeduren
    query = 'EXEC dbo.sp_rtrv4XML @prd = {0}'.format(ym)
    #vle = session.execute(query).fetchall() #Ausführungsergebnis abrufen:Wenn mehrere Ergebnisse zurückgegeben werden
    #print( vle[0][0] )

    vle = session.execute(query).fetchone() #Ausführungsergebnis abrufen:1 Fall wird zurückgesandt
    clm = session.execute(query).keys()  #Spaltennamen abrufen

    dc = dict(zip(clm , vle)) #Erstellen Sie ein Wörterbuch
    print(dc)

    #Räumen Sie nach der Sitzung auf
    #session.commit()
    session.close()

Hinweis) Als zu verbindende Datenbank wird SQL Server angenommen. Im Fall von SQLServer wird die gespeicherte Ausführung von der EXEC-Anweisung ausgeführt.

Ergänzung

apdx.sql


--SELECT-Anweisung, die mehrere Datensätze in einer Tabelle horizontal zu einem Datensatz erweitert
;WITH apdx
AS(
    SELECT 1 AS n,'vle1-1' AS fld1 , 'vle1-2' AS fld2 UNION ALL
    SELECT 2 AS n,'vle2-1' AS fld1 , 'vle2-2' AS fld2 UNION ALL
    SELECT 3 AS n,'vle3-1' AS fld1 , 'vle3-2' AS fld2 UNION ALL
    SELECT 4 AS n,'vle4-1' AS fld1 , 'vle4-2' AS fld2 
)
--SELECT *FROM hoge
SELECT 
    MAX(CASE WHEN n= 1 THEN fld1 END )AS fl11
,   MAX(CASE WHEN n= 1 THEN fld2 END )AS fl12
,   MAX(CASE WHEN n= 2 THEN fld1 END )AS fl21
,   MAX(CASE WHEN n= 2 THEN fld2 END )AS fl22
,   MAX(CASE WHEN n= 3 THEN fld1 END )AS fl31
,   MAX(CASE WHEN n= 3 THEN fld2 END )AS fl32
,   MAX(CASE WHEN n= 4 THEN fld1 END )AS fl41
,   MAX(CASE WHEN n= 4 THEN fld2 END )AS fl42
FROM apdx

/* 
Ausführungsergebnis ↓
fl11	fl12	fl21	fl22	fl31	fl32	fl41	fl42
vle1-1	vle1-2	vle2-1	vle2-2	vle3-1	vle3-2	vle4-1	vle4-2
*/

apdx.py


#Erstellen Sie ein Wörterbuch mit der ZIP-Funktion
   clm = ['fld1','fld2','fld3','fld4']
   vle = ['vle1','vle2','vle3','vle4']

   y = zip(clm,vle)
   print(dict(y))
   # {'fld3':'vle3','fld2':'vle2','fld1':'vle1','fld4':'vle4',}

Recommended Posts

Durchsuchen Sie die Tabelle mit sqlalchemy und erstellen Sie ein Wörterbuch
Verwenden Sie sqlalchemy, um die DB-Tabelle zu durchsuchen und eine Datenflamme für Pandas zu erstellen
Erstellen Sie ein verschachteltes Wörterbuch mit defaultdict
Erstellen Sie eine GUI auf dem Terminal mit Flüchen
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 2 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 3 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 4 ~
[CRUD] [Django] Erstellen Sie eine CRUD-Site mit dem Python-Framework Django ~ 5 ~
Erstellen Sie mithilfe der Twitter-Streaming-API einen Echtzeit-Bot für die automatische Antwort
Erstellen Sie eine neue Liste, indem Sie doppelte Elemente in der Liste kombinieren
Suchen Sie mit Pythonista3 nach einem Bild von der Kamerarolle
Vorsichtsmaßnahmen bei Verwendung einer Liste oder eines Wörterbuchs als Standardargument
Erstellen einer einfachen Tabelle mit Stettytable
Verarbeiten Sie die aus einem bestimmten Kassensystem entnommenen Daten, um eine Übersichtstabelle nach Produkt und Zeit zu erstellen
Verarbeitung von DB-Tabelleneinfügungen mit sqlalchemy
[Ev3dev] Erstellen Sie ein Programm, das das LCD (Bildschirm) mit Python erfasst
Erstellen Sie die CRUD-API mit der Fast API
Erstellen Sie mit Boost.Python einen C-Sprach-Wrapper
Schätzen Sie die Wahrscheinlichkeit, dass eine Münze mit MCMC erscheint
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Python> Wörterbuch> Werte ()> Alle Werte mithilfe von Werten abrufen ()
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
Erstellen Sie eine Anwendung mit der Spotify-API
Verschiedene Möglichkeiten, ein Wörterbuch zu erstellen (Erinnerungen)
[Python] Eine Tabelle mit Beautiful Soup kratzen
Erstellen Sie ein Hatena-Wörterbuch für SKK (zusätzlich)
Skript zum Erstellen einer Mac-Wörterbuchdatei
Fügen Sie mithilfe des Keras-Backends eine Ebene hinzu
Erstellen Sie eine REST-API mit dem in Lobe und TensorFlow Serving erlernten Modell.
[AWS Lambda] Erstellen Sie ein Bereitstellungspaket mit dem Amazon Linux Docker-Image
Erstellen Sie eine GIF-Datei mit Pillow in Python
Erstellen Sie mit PyLearn2 eine App zur falschen Unterstützung
Erstellen wir eine REST-API mit SpringBoot + MongoDB
Erstellen Sie eine Datensatztabelle aus den JFL-Übereinstimmungsergebnissen
Erstellen Sie mit ClustalW2 einen phylogenetischen Baum aus Biopyton
Schreiben Sie einen TCP-Server mit dem SocketServer-Modul
Erstellen Sie ein Bulletin Board mit Heroku, Flask, SQL Alchemy
[Python] Sortieren Sie die Tabelle nach sort_values (pandas DataFrame)
Erstellen Sie mit Kaitai Struct einen Binärdatenparser
Erstellen Sie eine Webmap mit Python und GDAL
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Erstellen Sie ein Besuchermeldungssystem mit Raspberry Pi
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie einen Befehl, um das Arbeitsprotokoll abzurufen
Gibt es keinen Standardwert im Wörterbuch?
Erstellen Sie ein Übersetzungswerkzeug mit dem Translate Toolkit
Erstellen Sie eine Tabelle mit IPython Notebook
Versuchen Sie, mit matplotlib aus den Daten von "Schedule-kun" eine Kampfaufzeichnungstabelle zu erstellen.
[Python] Sie können ein Objekt mithilfe des Pickle-Moduls in einer Datei speichern.
Verwenden Sie die Twitter-API, um die von Twitter benötigte Zeit zu verkürzen (erstellen Sie eine Hervorhebungszeitleiste).