Also ich versuche, eine Möglichkeit zu entwickeln, 4 verschiedene Kategorien (nennen wir sie A, B, C, D) in einem Wörterbuch speichern, so dass ich auf die Schlüssel/Werte in jedem Wörterbuch zugreifen kann und überprüfe sie anhand eines Dateinamens. Bis jetzt konnte ich 3 dieser Kategorien im Wörterbuch speichern, aber nicht im 4.. Die Kategorien stammen aus einer Excel-Datei und werden dann in eine normale .txt-Datei kopiert (ich habe die .txt-Datei eingefügt). Gibt es eine Möglichkeit, eine vierte Komponente zu meinem Wörterbuch hinzuzufügen?Listen verschachtelt innerhalb Wörterbuch
Link-TXT-Datei: https://drive.google.com/file/d/0B2s43FKt5BZgQldULXVOR0RBeTg/view?usp=sharing
Hier ist mein Skript:
from collections import defaultdict
source_file = <file path>-<file name>.txt
data_set = defaultdict(list) #sets up a defaultdict because there may be multiple overlapping keys
s = [b for b in [i.strip('\n').split('\t') for i in open(source_file)] if b] # removes new line & tab spaces in .txt file
for a, b, c, d in s: # a is donor, b is barcode, c is batch, d is donor
if a == 'Component1': # We don't want to save the column headings
pass
else:
data_set[a].append({b: c}) # creates the default dictionary
die Ausgabe so ist ab dem Moment:
{'1':[{'ab':'tg'},{'dd':'dd'}],'2':{'dc':'yh'},3:{'we':'hh'}}
verwenden th e 'csv'-Modul für Tab-getrennte Dateien. – Daniel
Ihre Eingabedatei hat zwei Zeilen mit einem 'Component1'-Wert von' 1'. Was möchten Sie tun, wenn dies eintritt? Wie ** sollte ** das Wörterbuch aussehen (ist es nicht wirklich wichtig, was Ihr aktueller Code ausgibt)? – martineau