J'ai créé un script pour traiter chaque élément dans un fichier Excel à 3 colonnes exporté en tant que fichier .txt en 3 listes (1 liste pour chaque colonne). Il y a 22 lignes dans le fichier .txt, y compris l'en-tête. Avec ces 3 listes, j'essaye de créer un dictionnaire imbriqué où chaque colonne est une clé, une clé dans une valeur, ou une valeur dans une valeur (par exemple: {Tag1: {Tag2: Tag3} ...} pour cependant Lorsque je liste ces listes dans un dictionnaire imbriqué, il tronque la liste et ne zippe que 19 éléments dans le dictionnaire, et non 22. Quelqu'un pourrait-il dépanner mon code et voir ce que fait le dictionnaire? à ma listeLorsque je crée un dictionnaire imbriqué à partir d'une liste, pourquoi la longueur de mon dictionnaire est-elle plus courte que celle de chaque liste?
Voici le fichier txt pour référence:
Voici mon script:
import glob
source_file = glob.glob('file_path/test.txt')[0]
time = []
code = []
identifier = []
data_set = {}
for line in open (source_file,'r'):
line_split = line.split('\t')
tag_3 = line_split[-1].replace('\n','')
tag_2 = line_split[1]
tag_1 = line_split[0]
time.append(tag_3)
code.append(tag_2)
identifier.append(tag_1)
data_set = {a:{b:c} for a,b,c in zip(identifier, code, time)}
EDIT: voici un lien vers une version téléchargeable du fichier: https://drive.google.com/file/d/0B2s43FKt5BZgQldULXVOR0RBeTg/view?usp=sharing
EDIT 2: Cela devrait être la sortie désirée:
data_set = {
'Tag1':{'Tag2':'Tag3'},
'0.1M':{'20':'10'},
'0.1MCD':{'2':'1'},
'0.25M':{'17':'1'},
'0.25MC':{'18':'1'},
'0.5MCN':{'16':'1'},
'0.MCD8':{'15':'1'},
'10':{'36':'5'},
'1029':{'75':'17'},
'1029A':{'22':'15'},
'1029B':{'49':'18'},
'1029BCD':{'23':'15'},
'1029BCDA':{'27':'18'},
'109B8N':{'63':'10'},
'1193D4M':{'51':'16'},
'1193D4N':{'2':'11'},
'1193D8M':{'17':'16'},
'11938N':{'25':'12'},
'1193CD4M':{'53':'16'},
'1193CD4N':{'83':'13'},
'118M':{'20':'16'},
'1193BCN':{'16':'7'},
}
EDIT 3: Il se la dictionnaire tronque la valeur s'il existe des valeurs en double dans les listes. Y-a-t-il un moyen d'éviter ça?
pouvez-vous poster le fichier dans le texte afin que les gens peuvent déboguer? – VBB
Pourquoi ne pas créer dict lors de la lecture de fichier? Aussi ne redéfinissez pas le nom 'dict' intégré –