2017-06-21 4 views
-1

Ich möchte mit Python eine CSV-Datei analysieren und nur bestimmte Zeilen ausgeben, die einen bestimmten Wert haben. Dies ist der Code, den ich bis jetzt haben,CSV Parsing Python, Ausgabe bestimmter Zeilen mit einem bestimmten Wert

import csv 

f = open('alerts2.csv') 
csv_f = csv.reader(f) 
li1 = [] 
header = next(csv_f) 
for row in csv_f: 

    # li1.append(row[5]) 
    # li1.append(row[0]) 
    severity = int(row[0]) #Has The the integer value from 10 - 40 
    Status = str(row[1]) 
    PolicyName = str(row[2]) 
    PolicyBlockName = str(row[3]) 
    PolicyRuleName = str(row[4]) 
    Summary = str(row[5]) 
    li1.append(severity) 
    li1.append(Summary) # string variables 
print li1 
f.close() 

Dies gibt alle Werte von der Schwere und der Zusammenfassung, aber ich will es die Daten von der Schwere und der Zusammenfassung nur ausgegeben, wenn der Schwerewert auf „10“. Ich dachte daran, die Liste "li1" zu verwenden und durch die Liste zu suchen, und wenn der Wert "10" gefunden wird, dann gebe die Werte aus. Irgendwelche Vorschläge?? Ich bin ein Python-Neuling.

Antwort

1

fügen Sie einfach diesen Scheck an Ihre Schleife über die CSV-Reihen:

for row in csv_f: 
    severity = int(row[0]) 
    if severity != 10: 
     continue 

wenn der severity Wert nicht 10 die Schleife wird continue mit der nächsten Zeile und nichts tun, was für die aktuelle Zeile folgt.

+0

Danke, aber können Sie Ihre Lösung ein wenig mehr erklären. Vielen Dank. – KoushKilla

+0

Die Python-Dokumentation enthält einen Abschnitt zu [continue-Anweisungen in for-Schleifen] (https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-in- Schleifen). Ich hoffe, das hilft! –

2
import pandas as pd 

alerts_df = pd.DataFrame.from_csv('alerts2.csv', index_col=None) 
print alerts_df[alerts_df['severity'] == 10]['Summary'] 
Verwandte Themen