Ich habe einen Python-Skript, das eine SQL-Abfrage hat in eine Liste von Listen zurückgegeben, zB:Python Umwandlung Abfrageausgabe
result = [ ['12345', 'Red', 'House', 150, '18/05/2016', 27.3],
['34534', 'Blue', 'Car', 500, '22/12/2015', 587.52] ]
Der erste Eintrag in jeder Liste ist die ID, dann ist jedes Element ein Attribut bezogen auf jeden Datensatz, wie Colour
, Type
, Size
, Date
, Cost
.
Der Artikel Attribute wie Colour
, Date
usw. möglicherweise unterschiedlich sind für jede SQL-Abfrage ausführen, da diese auf meine SQL-Abfrage von einem anderen Abfrageergebnis dynamisch hinzugefügt (die Spalten abfragt) zB:
columns = {'RecID': 'RecordID', 'Color': 'Colour', 'Type': 'Type', 'Size': 'Size', 'PurchaseDate': 'Date', 'PurchaseCost': 'Cost'}
newQueryFields = "[UniqueID]"
for x in columns:
newQueryFields = "{}, [{}]".format(newQueryFields, columns[x])
I Ich habe es mit dem folgenden Code in ein Listenwörterbuch geschafft, aber für den (noch nicht geschriebenen) Rest des Codes wäre es besser, wenn ich auf Wörterbuchelemente verweisen könnte.
newResult = dict()
for rec in result:
newResult[rec[0]] = rec
was zur Folge hat:
result = {'12345': ['12345', 'Red', 'House', 150, '18/05/2016', 27.3],
'34534': ['34534', 'Blue', 'Car', 500, '22/12/2015', 587.52] }
aber ich versuche, die Ergebnisse in ein Wörterbuch der Wörterbücher zu bekommen (ich glaube?), Aber ich kann nicht meinen Kopf um, wie meine zu strukturieren Code zur Ausgabe:
newResult = {'12345': {'ID': '12345', 'Colour': 'Red', 'Type': 'House', 'Size': 150, 'Date': '18/05/2016', 'Cost': 27.3},
'34534': {'ID': '34534', 'Colour': 'Blue', 'Type': 'Car', 'Size': 500, 'Date': '22/12/2015', 'Cost': 587.52} }
Ist die Reihenfolge der Felder immer gleich? – AKS
Das Ergebnis der Abfrage gibt die Felder immer in der Reihenfolge aus, in der sie abgefragt werden. Die Reihenfolge der Felder ist kein Problem, aber da die Feldnamen dynamisch sind, können sie ein beliebiges Feld in beliebiger Reihenfolge sein. – Midavalo