J'ai un fichier CSV indiqué ci-dessous Je dois convertir en dictionnaire indiqué ci-dessous p> j'ai lu fichier en utilisant csv p> comment convertir en dictionnaire p>
3 Réponses :
Étant donné que chaque ligne est renvoyée sous forme de liste de chaînes à partir de csv.reader code>, vous devez essayer comme ci-dessous: result_dict = {}
for row in reader:
if row[0] in result_dict:
if row[1] in result_dict[row[0]]:
result_dict[row[0]][row[1]] += 1
else:
result_dict[row[0]][row[1]] = 1
else:
result_dict[row[0]] = {row[1]:1}
from collections import defaultdict, Counter
parsed = defaultdict(Counter)
reader = csv.reader(file_obj)
code_index = 0
product_index = 1
for row in reader:
if row and len(row) >= 2:
code = row[code_index]
product = row[product_index]
parsed[code][product] += 1
I think this will do the job.
a obtenu une erreur d'erreur = ligne [Product_Index IndexError: Index de la liste hors de portée
Probablement un problème avec la longueur de ligne .. J'ai ajouté un chèque pour le nombre d'éléments attendu, mais vous devez prendre en compte le meilleur moyen de valider vos données entrantes.
Peut-on itération de CSV avec le comptoir. Je reçois une sortie "analysée" comme defaultDict (collections.counter, {})
Oui, analysé est essentiellement un dictionnaire imbriqué. L'objet compteur fournit des méthodes d'assistance supplémentaires, mais fournit des fonctionnalités de dictionnaire standard.
courtoisie: @Monkut
Regardez iTertools.groupby et collections.Conter.