2017-07-13 12 views
0
  1. Ich war in der Lage, die Datei geladen als eine Liste wie folgt angezeigt wird.

[ABC, 1; 2; 3] [DEF, 4; 5; 6]Wie lade ich eine CSV-Datei mit Trennzeichen in Python?

  1. aber ich brauche es formatiert wie das, was unten ist, .

    [ABC, 1] [ABC, 2] [ABC, 3] [DEF, 4] usw.

Hier ist der Code, den ich verwendet, um die Datei zu laden:

import csv 

f = open('Sample.csv') 
csv_f = csv.reader(f) 

for row in csv_f: 
    print(row) 

hier ist der Ausgang:

['Description', 'Article #'] 
['Build a Better Breakfast: Buy 2 save $2 on fruit/nuts/Milk - Kids M/Raisin Bran, RK M , Mini Wheat M PLUS Pop Tarts 12 ct.', '62758;65926;855924;856013;856179;553818;28107;29601;65928;51415;745406;414680;872002;29599;25717;25719;29608;62773;700401;746727;746743;746701;705400;817833'] 
['Community Coffee 12oz Ground Roast Coffee', '1027151;1027153;1059063;1170982;1170983;1170984;1170986;1170987;1170988;1170989;1182424;1216634;1216667;1225228;1228111;1245664;1245666;1248330;1249099;1249100;1308483;1330732;1330744;1336906'] 
["Keurig Green Mountain Core 12CT - Flavors Include: Columbian, Breakfast Blend, Hazelnut, Dark Magic Extra Bold, Newman's Own Blnd, French Vanilla, Caribou Blnd, Nantucket, Caramel Vanilla Crm, Dark Magic Decaf, Half Caff, Tully's French Rst, Tully's Hawaiin Bln - Dc'd, Breakfast Decaf, Pumpkin Spice, Cinnamon Roll Cinnabon, Donut Shop Decaf, Donust Shop, French Vanilla Decaf, Krispy Cream 9 New), Coconut Mocha (New), Donut Shop Dark (New)", '15136;15137;15166;15167;15168;22392;22664;22784;31015;31017;31020;40948;40980;41238;48742;48754;48756;48777;99555;08300;99555;08588;99555;086577'] 
['Starbucks K-Cups 10ct & 12oz R&G Coffee', '50794;50796;26470;26475;26479;30067;30082;41007;41008;41022;41196;50795;49424;49421;7700;30070;49414;49416;149195;149237;161588;373787;373886;373902;374264;374298;431858'] 
+1

Sie müssen hier Ihren Code und Beispieldaten anzeigen. Es sieht so aus, als hätten Sie eine Mischung aus Delimitern. – roganjosh

+0

Danke, dass Sie Code angezeigt haben. Ich glaube nicht, dass das Problem mit dem Trennzeichen (Sie können das Trennzeichen in 'csv.reader' angeben, aber es ist standardmäßig Komma). Was Sie wollen, ist der benutzerdefinierte Code IIUC. Sie müssen einen zweiten Split machen. Gib mir eine Minute. – roganjosh

Antwort

0

Aus Ihre erste Frage, ich denke, das ist die Ausgabe, nach der Sie suchen (obwohl die Kategorie, die "Keurig Green Mountain ..." beginnt, mich unsicher macht). Der CSV-Leser trennt den Trennzeichen , korrekt. Sie benötigen jedoch eine verschachtelte for-Schleife, um persistent gegen eine sekundäre Teilung der Artikelnummer basierend auf dem Trennzeichen ; zu halten.

csv_reader_output = [['Description', 'Article #'], 
['Build a Better Breakfast: Buy 2 save $2 on fruit/nuts/Milk - Kids M/Raisin Bran, RK M , Mini Wheat M PLUS Pop Tarts 12 ct.', '62758;65926;855924;856013;856179;553818;28107;29601;65928;51415;745406;414680;872002;29599;25717;25719;29608;62773;700401;746727;746743;746701;705400;817833'], 
['Community Coffee 12oz Ground Roast Coffee', '1027151;1027153;1059063;1170982;1170983;1170984;1170986;1170987;1170988;1170989;1182424;1216634;1216667;1225228;1228111;1245664;1245666;1248330;1249099;1249100;1308483;1330732;1330744;1336906'], 
["Keurig Green Mountain Core 12CT - Flavors Include: Columbian, Breakfast Blend, Hazelnut, Dark Magic Extra Bold, Newman's Own Blnd, French Vanilla, Caribou Blnd, Nantucket, Caramel Vanilla Crm, Dark Magic Decaf, Half Caff, Tully's French Rst, Tully's Hawaiin Bln - Dc'd, Breakfast Decaf, Pumpkin Spice, Cinnamon Roll Cinnabon, Donut Shop Decaf, Donust Shop, French Vanilla Decaf, Krispy Cream 9 New), Coconut Mocha (New), Donut Shop Dark (New)", '15136;15137;15166;15167;15168;22392;22664;22784;31015;31017;31020;40948;40980;41238;48742;48754;48756;48777;99555;08300;99555;08588;99555;086577'], 
['Starbucks K-Cups 10ct & 12oz R&G Coffee', '50794;50796;26470;26475;26479;30067;30082;41007;41008;41022;41196;50795;49424;49421;7700;30070;49414;49416;149195;149237;161588;373787;373886;373902;374264;374298;431858']] 

new_list = [] 

for row in csv_reader_output[1:]: # Avoid the title row 
    description = row[0] # Your ABC 
    for article in row[1].split(';'): # Splitting the article number 
     new_list.append([description, article]) 

for item in new_list: 
    print(item) 
Verwandte Themen