Je dispose d'un fichier csv formaté comme ceci:module csv retourner une nomenclature pour la première colonne
type,type_mapping, style,style_mapping,Count
Residential,Residential,Antique,Antique,109
Antique,Residential,Antique,Antique,48
Apt/Garage,Commercial,Apt/Garage,Apartment,1
Je l'analyse à l'aide du module csv en Python (version 3). Voici mon code:
import os
import csv
typeXref = dict()
with open('xref.csv') as csvData:
csvRead = csv.reader(csvData)
headers = next(csvRead)
for index, row in enumerate(csvRead):
typeXref[index] = {key: value for key, value in zip(headers, row)}
print(typeXref)
Pour une raison quelconque ma première colonne retourne toujours la marque d'ordre d'octet \ufeff
pour la première colonne dans l'en-tête.
408: {'\ufefftype': 'Residential', 'type_mapping': 'Residential',
' style': 'Antique', 'style_mapping': 'Antique', 'Count': '109'}}
Je suppose que cela est dû à la façon dont j'ouvre le fichier, la lecture du contenu avec le module csv
, ou la génération du fichier.
Je peux comprendre comment décoder ce champ, mais je m'assurerais plutôt de générer le fichier correctement, ou d'utiliser la propriété csv
du module.
vous avez déjà essayé avec 'avec open ('xref.csv' , encoding = 'utf-8') en tant que csvData: '? – PRMoureu
Excellente idée. J'ai juste essayé et je récupère toujours la même nomenclature. Je pense que c'est quelque chose dans ce sens. – Dom