Um einen Vergleich in einem Dictionary machen zu können, muß ich die vierte Spalte dieser Datei (Ausschnitt) bearbeiten.
Code: Alles auswählen
03	127	0135	PATCH-PANEL	PATCH-PANEL,-DIGITUS			
03	127	0172	PATCH-PANEL	PATCH-PANEL,-EQUIP			
03	127	0331	PATCH-PANEL	PATCH-PANEL,-LOGILINK			
03	127	0568	PATCH-PANEL	PATCH-PANEL,-TELEGÄRTNER			
03	128	0000	INDUSTRIAL-ETHERNET,-PASSIV	PATCHKABEL,-KAT.5,-TELEGÄRTNER			
03	128	0000	INDUSTRIAL-ETHERNET,-PASSIV	PATCHKABEL,-KAT.7,-TELEGÄRTNER			
03	128	0000	PATCHKABEL,-KAT.5E,-ROLLENWARE	PATCHKABEL,-ROLLENWARE,-KAT.5E,-DIGITUS			
03	128	0000	PATCHKABEL,-KAT.5E,-ROLLENWARE	PATCHKABEL,-ROLLENWARE,-KAT.5E,-DRAKA			
03	128	0000	PATCHKABEL,-KAT.5E,-ROLLENWARE	PATCHKABEL,-ROLLENWARE,-KAT.5E,-EQUIP			
03	128	0000	PATCHKABEL,-KAT.5E,-ROLLENWARE	PATCHKABEL,-ROLLENWARE,-KAT.5E,-LOGILINK			
03	128	0000	PATCHKABEL,-KAT.6,-ROLLENWARE	PATCHKABEL,-ROLLENWARE,-KAT.6,-DRAKA			
03	128	0000	PATCHKABEL,-KAT.6,-ROLLENWARE	PATCHKABEL,-ROLLENWARE,-KAT.6,-LOGILINK			
03	128	0000	PATCHKABEL,-KAT.7,-ROLLENWARE	PATCHKABEL,-ROLLENWARE,-KAT.7,-DRAKA			
03	128	0135	INTERNET-KAMERAS-/-WEBCAMS	INTERNET-KAMERAS-/-WEBCAMS,-DIGITUS			
03	128	0214	INTERNET-KAMERAS-/-WEBCAMS	INTERNET-KAMERAS-/-WEBCAMS,-GENIUS		Beispiel:
Da es öfters vorkommt, mehr als nur ein Komma in dem String zu haben, das berücksichtigt werden muß, habe ich ein Konstrukt dazu erstelltINTERNET-KAMERAS-/-WEBCAMS,-DIGITUS
INTERNET-KAMERAS-/-WEBCAMS
Code: Alles auswählen
with codecs.open(subgroupindex_path, "r") as infile:
    reader = csv.reader(infile, delimiter="\t", quotechar="^")
    subgroupindex = {}
    for line in reader:
       subgroupindex[line[0], line[1]] = line[2]
with codecs.open(basegroup_path, "r") as infile:
    reader = csv.reader(infile, delimiter="\t", quotechar="^")
    daten = []
    for item in reader:        
        if ',' in item[4]:
            y = item[4].count(',')
            y = y - 1
        if y > 1:
            a = item[4].split(',')[:y]
            b = (item[0], a)
            p = subgroupindex.get(b, '---')
        else:
            a = item[4].split(',')[0]
            b = (item[0], a)
            p = subgroupindex.get(b, '---')
Code: Alles auswählen
        if y > 1:
            a = item[4].split(',')[:y]
            b = (item[0], a)
            p = subgroupindex.get(b, '---')Ich habe mir das eigentlich so vorgestellt, daß wie in diesem BeispielTypeError: unhashable type: 'list'
drei Kommas enthalten sind.PATCHKABEL,-ROLLENWARE,-KAT.5E,-DIGITUS
Also lasse ich die Kommas im String zählen, ziehe vom Ergebnis -1 ab und definiere den neuen String.
Anschließend möchte ich dieses Ergebnis in einem Dictionary vergleichen können.
Was mache ich falsch, bzw. wo ist mein Denkfehler?
Grüße Nobuddy
