list index out of range

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Susanne
User
Beiträge: 35
Registriert: Dienstag 8. Januar 2013, 19:49

Hallo,

ich würde gerne meine Outlook Kontakte in eine Datenbank schreiben.
Dazu habe ich die Kontakte in ein .csv-File exportiert

das ganze läuft unter Django, was auch soweit funktioniert.

leider kommt folgende Meldung:
"
Exception Type: IndexError
Exception Value:
list index out of range
"

die Spalten in der Datenbank existieren, das hab ich schon mehrmals geprüft. Kann mir jemand sagen was die Fehlermeldung soll?

vielen Dank im voraus

Code: Alles auswählen

def kontakte(request):

    Address.objects.all()
    dirList = os.listdir('/home/susanne/Desktop')
    for filename in dirList:
        if filename.startswith('outlook'):
            reader = csv.reader(open("/home/susanne/Desktop/"+filename),delimiter=",")
            
            for global_row in reader:
                Anrede = global_row[0]
                Vorname = global_row[1]
                WeitereVornamen = global_row[2]
                Nachname = global_row[3]
                Suffix = global_row[4]
                Firma = global_row[5]
                Abteilung = global_row[6]
                Position = global_row[7]
                Strassegeschaeftlich = global_row[8]
                Strassegeschaeftlich2 = global_row[9]
                Strassegeschaeftlich3 = global_row[10]
                Ortgeschaeftlich = global_row[11]
                Regiongeschaeftlich = global_row[12]
                Postleitzahlgeschaeftlich = global_row[13]
                LandRegiongeschaeftlich = global_row[14]
                Strasseprivat = global_row[15]
                Strasseprivat2 = global_row[16]
                Strasseprivat3 = global_row[17]
                Ortprivat = global_row[18]
                BundeslandKantonprivat = global_row[19]
                Postleitzahlprivat = global_row[20]
                LandRegionprivat = global_row[21]
                WeitereStrasse = global_row[22]
                WeitereStrasse2 = global_row[23]
                WeitereStrasse3 = global_row[24]
                WeitererOrt = global_row[25]
                WeiteresBundeslandKanton = global_row[26]
                WeiterePostleitzahl = global_row[27]
                WeiteresLandRegion = global_row[28]
                TelefonAssistent = global_row[29]
                Faxgeschaeftlich = global_row[30]
                Telefongeschaeftlich = global_row[31]
                Telefongeschaeftlich2 = global_row[32]
                Rueckmeldung = global_row[33]
                Autotelefon = global_row[34]
                TelefonFirma = global_row[35]
                Faxprivat = global_row[36]
                Telefonprivat = global_row[37]
                Telefonprivat2 = global_row[38]
                ISDN = global_row[39]
                Mobiltelefon = global_row[40]
                WeiteresFax = global_row[41]
                WeiteresTelefon = global_row[42]
                Pager = global_row[43]
                Haupttelefon = global_row[44]
                Mobiltelefon2 = global_row[45]
                TelefonfuerHoerbehinderte = global_row[46]
                Telex = global_row[47]
                Abrechnungsinformation = global_row[48]
                Benutzer1 = global_row[49]
                Benutzer2 = global_row[50]
                Benutzer3 = global_row[51]
                Benutzer4 = global_row[52]
                Beruf = global_row[53]
                Buero = global_row[54]
                EMailAdresse = global_row[55]
                EMailTyp = global_row[56]
                EMailAngezeigterName = global_row[57]
                EMail2Adresse = global_row[58]
                EMail2Typ = global_row[59]
                EMail2AngezeigterName = global_row[60]
                EMail3Adresse = global_row[61]
                EMail3Typ = global_row[62]
                EMail3AngezeigterName = global_row[63]
                Empfohlenvon = global_row[64]
                Geburtstag = global_row[65]
                Geschlecht = global_row[66]
                Hobby = global_row[67]
                Initialen = global_row[68]
                InternetFreiGebucht = global_row[69]
                Jahrestag = global_row[70]
                Kategorien = global_row[71]
                Kinder = global_row[72]
                Konto = global_row[73]
                NameAssistent = global_row[74]
                NamedesderVorgesetzten = global_row[75]
                Notizen = global_row[76]
                Organisationsnr= global_row[77]
                Ort = global_row[78]
                Partner = global_row[79]
                Postfachgeschaeftlich = global_row[80]
                Postfachprivat = global_row[81]
                Prioritaet = global_row[82]
                Privat = global_row[83]
                Regierungsnr = global_row[84]
                Reisekilometer = global_row[85]
                Sprache = global_row[86]
                Stichwoerter = global_row[87]
                Vertraulichkeit = global_row[88]
                Verzeichnisserver = global_row[89]
                Webseite = global_row[90]
                WeiteresPostfach = global_row[91]


                a = Address(Anrede=Anrede, Vorname=Vorname, WeitereVornamen=WeitereVornamen, Nachname=Nachname, Suffix=Suffix, Firma=Firma, Abteilung=Abteilung, Position=Position, Strassegeschaeftlich=Strassegeschaeftlich, Strassegeschaeftlich2=Strassegeschaeftlich2, Strassegeschaeftlich3=Strassegeschaeftlich3, Ortgeschaeftlich=Ortgeschaeftlich, Regiongeschaeftlich=Regiongeschaeftlich, Postleitzahlgeschaeftlich=Postleitzahlgeschaeftlich, LandRegiongeschaeftlich=LandRegiongeschaeftlich, Strasseprivat=Strasseprivat, Strasseprivat2=Strasseprivat2, Strasseprivat3=Strasseprivat3, Ortprivat=Ortprivat, BundeslandKantonprivat=BundeslandKantonprivat, Postleitzahlprivat=Postleitzahlprivat, LandRegionprivat=LandRegionprivat, WeitereStrasse=WeitereStrasse, WeitereStrasse2=WeitereStrasse2, WeitereStrasse3=WeitereStrasse3, WeitererOrt=WeitererOrt, WeiteresBundeslandKanton=WeiteresBundeslandKanton, WeiterePostleitzahl=WeiterePostleitzahl, WeiteresLandRegion=WeiteresLandRegion, TelefonAssistent=TelefonAssistent, Faxgeschaeftlich=Faxgeschaeftlich, Telefongeschaeftlich=Telefongeschaeftlich, Telefongeschaeftlich2=Telefongeschaeftlich2, Rueckmeldung=Rueckmeldung, Autotelefon=Autotelefon, TelefonFirma=TelefonFirma, Faxprivat=Faxprivat, Telefonprivat=Telefonprivat, Telefonprivat2=Telefonprivat2, ISDN=ISDN, Mobiltelefon=Mobiltelefon, WeiteresFax=WeiteresFax, WeiteresTelefon=WeiteresTelefon, Pager=Pager, Haupttelefon=Haupttelefon, Mobiltelefon2=Mobiltelefon2, TelefonfuerHoerbehinderte=TelefonfuerHoerbehinderte, Telex=Telex, Abrechnungsinformation=Abrechnungsinformation, Benutzer1=Benutzer1, Benutzer2=Benutzer2, Benutzer3=Benutzer3, Benutzer4=Benutzer4, Beruf=Beruf, Buero=Buero, EMailAdresse=EMailAdresse,EMailTyp=EMailTyp, EMailAngezeigterName=EMailAngezeigterName, EMail2Adresse=EMail2Adresse, EMail2Typ=EMail2Typ, EMail2AngezeigterName=EMail2AngezeigterName, EMail3Adresse=EMail3Adresse, EMail3Typ=EMail3Typ, EMail3AngezeigterName=EMail3AngezeigterName, Empfohlenvon=Empfohlenvon, Geburtstag=Geburtstag, Geschlecht=Geschlecht, Hobby=Hobby, Initialen=Initialen, InternetFreiGebucht=InternetFreiGebucht, Jahrestag=Jahrestag, Kategorien=Kategorien, Kinder=Kinder, Konto=Konto, NameAssistent=NameAssistent, NamedesderVorgesetzten=NamedesderVorgesetzten, Notizen=Notizen, Organisationsnr=Organisationsnr, Ort=Ort, Partner=Partner, Postfachgeschaeftlich=Postfachgeschaeftlich, Postfachprivat=Postfachprivat, Prioritaet=Prioritaet, Privat=Privat, Regierungsnr=Regierungsnr, Reisekilometer=Reisekilometer, Sprache=Sprache, Stichwoerter=Stichwoerter, Vertraulichkeit=Vertraulichkeit, Verzeichnisserver=Verzeichnisserver, Webseite=Webseite, WeiteresPostfach=WeiteresPostfach)

                a.save()
           
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Möglicherweise kommen Deinen csv-Dateien Zeilen vor, die nicht dem entsprechen, was Du erwartest.
Susanne
User
Beiträge: 35
Registriert: Dienstag 8. Januar 2013, 19:49

was meinst du damit?
ich habe mal meine csv-Datei wie folgt angepasst:

Anrede,
Vorname,
WeitereVornamen,
Nachname,
Suffix,
Firma,
Abteilung,
Position,
Strassegeschaeftlich,
Strassegeschaeftlich2,
Strassegeschaeftlich3,
Ortgeschaeftlich,
Regiongeschaeftlich,
Postleitzahlgeschaeftlich,
LandRegiongeschaeftlich,
Strasseprivat,
Strasseprivat2,
Strasseprivat3,
Ortprivat,
BundeslandKantonprivat,
Postleitzahlprivat,
LandRegionprivat,
WeitereStrasse,
WeitereStrasse2,
WeitereStrasse3,
WeitererOrt,
WeiteresBundeslandKanton,
WeiterePostleitzahl,
WeiteresLandRegion,
TelefonAssistent,
Faxgeschaeftlich,
Telefongeschaeftlich,
Telefongeschaeftlich2,
Rueckmeldung,
Autotelefon,
TelefonFirma,
Faxprivat,
Telefonprivat,
Telefonprivat2,
ISDN,
Mobiltelefon,
WeiteresFax,
WeiteresTelefon,
Pager,
Haupttelefon,
Mobiltelefon2,
TelefonfuerHoerbehinderte,
Telex,
Abrechnungsinformation,
Benutzer1,
Benutzer2,
Benutzer3,
Benutzer4,
Beruf,
Buero,
EMailAdresse,
EMailTyp,
EMailAngezeigterName,
EMail2Adresse,
EMail2Typ,
EMail2AngezeigterName,
EMail3Adresse,
EMail3Typ,
EMail3AngezeigterName,
Empfohlenvon,
Geburtstag,
Geschlecht,
Hobby,
Initialen,
InternetFreiGebucht,
Jahrestag,
Kategorien,
Kinder,
Konto,
NameAssistent,
NamedesderVorgesetzten,
Notizen,
Organisationsnr,
Ort,
Partner,
Postfachgeschaeftlich,
Postfachprivat,
Prioritaet,
Privat,
Regierungsnr,
Reisekilometer,
Sprache,
Stichwoerter,
Vertraulichkeit,
Verzeichnisserver,
Webseite,
WeiteresPostfach


bei dem einzigsten was ich mir nicht sicher bin ist das letzte Komma bei "Weiteres Postfach" muss dort ein "Komma" hin oder nicht?
hab aber schon beide varianten versucht leider ohne erfolg, dennoch würde es mich interessieren ob mit oder ohne Komma
BlackJack

@Susanne: Die Fehlermeldung sagt, dass irgendeiner der Indexzugriffe nicht funktioniert, weil das Objekt welches da indexiert wird nicht so viele Elemente hat wie Du bei dem Zugriff offensichtlich erwartest. Und das würde heissen, dass die Datei nicht so aussieht wie Du anscheinend erwartest. Sind da zum Beispiel tatsächlich Zeilenumbrüche nach jedem „Spaltenwert”? Lass Dir doch einfach mal die Länge von den Zeilenobjekten ausgeben, dann siehst Du ja wo es möglicherweise Probleme gibt.
Susanne
User
Beiträge: 35
Registriert: Dienstag 8. Januar 2013, 19:49

vielen Dank, es lag an den Zeilenumbrüchen.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Susanne hat geschrieben:vielen Dank, es lag an den Zeilenumbrüchen.
Das glaube ich nicht. Wenn Du die Zeilenumbrüche entfernst, wird der CSV-Reader definitv nicht mehr das liefern, was Du haben möchtest.
Antworten