Seite 1 von 1

list index out of range

Verfasst: Sonntag 17. Februar 2013, 18:04
von Susanne
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()
           

Re: list index out of range

Verfasst: Sonntag 17. Februar 2013, 18:32
von kbr
Möglicherweise kommen Deinen csv-Dateien Zeilen vor, die nicht dem entsprechen, was Du erwartest.

Re: list index out of range

Verfasst: Sonntag 17. Februar 2013, 18:37
von Susanne
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

Re: list index out of range

Verfasst: Sonntag 17. Februar 2013, 18:47
von 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.

Re: list index out of range

Verfasst: Sonntag 17. Februar 2013, 19:20
von Susanne
vielen Dank, es lag an den Zeilenumbrüchen.

Re: list index out of range

Verfasst: Sonntag 17. Februar 2013, 20:19
von kbr
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.