Sto lavorando a un programma che (tra le altre cose) legge un file CSV (viene memorizzato come una serie di dicts nel formato [{col1:data1a,col2:data2a},{col1:data1b,col2:data2b}]
). Per ogni riga, come parte di un'altra elaborazione, ho bisogno di rimappare quelle chiavi ai valori inseriti dall'utente, che sono forniti in un altro dict in modo che possano essere utilizzati come parametri in una chiamata API. La matrice di mappatura è nella forma: {badname1:goodname1, badname2:goodname2,...}
.Come re-mappare i tasti pyt dict
Quindi mi piacerebbe arrivare da: {badname1:data1, badname2:data2,...}
per {goodname1:data1, goodname2:data2,...}
mi piacerebbe usare qualcosa come zip()
(anche se i rendimenti zip()
{badname1:badname1,...}
).
Sembra che dovrebbe esserci una soluzione ovvia che mi sta alludendo.
EDIT: Se i dati sono in a
e la mappatura in b
:
dict(zip(b,a.itervalues()))
mi avvicino, ma funzionerà solo nei casi in cui i campi sono noti per essere nello stesso ordine Credo.
Sì. Funziona anche senza [], come espressione di generatore. –