J'ai deux fichiers CSV : "Données" et "Cartographie" :
- Le fichier 'Mapping' comporte 4 colonnes :
Device_Name
,GDN
,Device_Type
etDevice_OS
. Les quatre colonnes sont remplies. - Le fichier "Data" comporte les mêmes colonnes, avec les éléments suivants
Device_Name
et les trois autres colonnes sont vides. - Je veux que mon code Python ouvre les deux fichiers et pour chaque
Device_Name
dans le fichier de données, faire correspondre sonGDN
,Device_Type
etDevice_OS
du fichier Mapping.
Je sais comment utiliser dict lorsque seulement 2 colonnes sont présentes (1 est nécessaire pour être mappée) mais je ne sais pas comment accomplir ceci lorsque 3 colonnes doivent être mappées.
Voici le code à l'aide duquel j'ai essayé de réaliser le mapping de Device_Type
:
x = dict([])
with open("Pricing Mapping_2013-04-22.csv", "rb") as in_file1:
file_map = csv.reader(in_file1, delimiter=',')
for row in file_map:
typemap = [row[0],row[2]]
x.append(typemap)
with open("Pricing_Updated_Cleaned.csv", "rb") as in_file2, open("Data Scraper_GDN.csv", "wb") as out_file:
writer = csv.writer(out_file, delimiter=',')
for row in csv.reader(in_file2, delimiter=','):
try:
row[27] = x[row[11]]
except KeyError:
row[27] = ""
writer.writerow(row)
Il retourne Attribute Error
.
Après quelques recherches, je pense que je dois créer un dict imbriqué, mais je n'ai aucune idée de la manière de le faire.