2017-04-10 2 views
0

Ich versuche, ein Programm zu machen, das in der Lage ist, eine Excel-Datei zu lesen und dann in einer Variablen zu speichern, welche der Werte der Liste größer als ein bestimmter Wert ist, aber ich bekomme den Fehler : "'int' Objekt ist nicht iterierbar". Aber wenn ich eine Liste verwende, die in meinem Code ist, funktioniert das gut. Kann jemand helfen? Sorry für das schlechte Englisch. Das ist, was ich habe, so weit:Lesen Excel Tupel mit Bedingung in Python3

import openpyxl 

wb = openpyxl.load_workbook(filename = 'example.xlsx') 
sheet = wb.get_sheet_by_name('Plan1') 
for i in range(1, 7): 
    age = [] 
    age = (sheet.cell(row=i, column=3).value) 
numbers = [1, 5, 6, 8, 11, -1, -5, 7, -7 -11, -20] 
#If i use numbers instead of age works just fine 
velho = ([ num for num in age if num < 6 ]) 
print(velho) 
+1

Was ist der Wert von 'sheet.cell (row = i, column = 3) .value'? –

+0

Es ist eine Liste von Zahlen in einer Excel-Dateien, 22, 26, 74, 87, 56 ... –

+0

Sind Sie sicher, es ist eine Liste? Die Fehlermeldung weist auf einen int hin. –

Antwort

0

Ihre for-Schleife verwirrend ist. Sie setzen age jedesmal auf einen anderen Wert. Willst du die Liste anhängen? Um dies zu tun, deklarieren Sie age = [] außerhalb der Schleife, dann rufen Sie age.append(val) innerhalb der Schleife.

+0

Danke! Es funktioniert jetzt, obwohl ich zu python2 gewechselt habe. –