2012-10-15 18 views
7

Ho uno script in cui sto estraendo il valore per ogni utente e aggiungendolo in un elenco ma sto ottenendo "L'oggetto NoneType non ha attributo" '". Il mio codice è comeelenco accodamento ma errore 'NoneType' oggetto non ha attributo 'append'

last_list=[] 
if p.last_name==None or p.last_name=="": 
    pass 
last_list=last_list.append(p.last_name) 
print last_list 

Desidero aggiungere il cognome nell'elenco. Se non lo è, non aggiungerlo all'elenco. Si prega di aiutare Nota: p è l'oggetto che sto usando per ottenere informazioni dalla mia modulo che hanno tutti first_name, cognome, età, ecc .... Si prega di suggerire .... Grazie in anticipo

+1

è questo Python? In tal caso: aggiungi il tag ... – rene

+0

Sì, il suo Python – learner

risposta

12

Quando facendo pan_list.append(p.last) si' stai facendo un'operazione in place, cioè un'operazione che modifica l'oggetto e non restituisce nulla (ad esempio None).

si dovrebbe fare qualcosa di simile:

last_list=[] 
if p.last_name==None or p.last_name=="": 
    pass 
last_list.append(p.last) # Here I modify the last_list, no affectation 
print last_list 
+0

Oops. In realtà la sua last_list = last_list.append (p.last_name) – learner

+1

@learner Questo avrebbe causato lo stesso problema. – cwallenpoole

+0

quindi quale sarebbe il mio codice per aggiungere last_name nella lista e saltare il none o vuoto last_name ?? Si prega di suggerire – learner

2

Penso che quello che vuoi è questo:

last_list=[] 
if p.last_name != None and p.last_name != "": 
    last_list.append(p.last_name) 
print last_list 

Il tuo attuale if:

if p.last_name == None or p.last_name == "": 
    pass 

Effettivamente non fa mai niente. Se p.last_name è none o la stringa vuota, non fa nulla all'interno del ciclo. Se p.last_name è un'altra cosa, il corpo dell'istruzione if viene saltato.

Inoltre, sembra che la tua affermazione pan_list.append(p.last) sia un errore di battitura, perché non vedo né pan_list né p.last per essere utilizzato da nessun'altra parte nel codice che hai pubblicato.

+0

quindi quale sarebbe il mio codice per aggiungere last_name nella lista e saltare il none o vuoto last_name ?? Si prega di suggerire – learner

+0

Grazie a tutti .. Il suo funzionamento :) – learner

6

lista è mutevole

Change

last_list=last_list.append(p.last_name) 

a

last_list.append(p.last_name) 

funzionerà

+0

Perché la linea sostituita non funziona? – alds

Problemi correlati