2016-09-24 1 views
0

In der for-Schleife ein Wörterbuch Objekt wie dieses:Typeerror: Descriptor ‚anhängen‘ erfordert eine ‚Liste‘ Objekt, sondern erhielt eine ‚dict‘

mob1 = { 
    "Item": item1, 
    'Price': price1, 
    'Desc': desc1 
} 

und ich versuchte, es mögen zu anfügen:

list.append(mob1) 

bekomme ich folgende Fehlermeldung:

Traceback (most recent call last): 
    File "/home/turbolab/Documents/python_test/Sep 23 data_to_json test.json", line 32, in <module> 
    list.append(mob1) 
TypeError: descriptor 'append' requires a 'list' object but received a 'dict' 
+0

Was versuchen Sie zu tun? Welche Elemente des Wörterbuchs möchten Sie in der Liste hinzufügen? Ohne Ihr Problem ausreichend zu beschreiben, machen Sie es anderen schwer, Ihnen zu helfen. –

+0

wie ich versuche, den Namen, seinen Preis und die Beschreibung eines Artikels von einer Webseite zu bekommen, wenn ich es in die JSON-Datei geladen habe, bekomme ich nur den Namen, den Preis und die Beschreibung des letzten Elements, es wird so überschrieben Ich benutzte list.append() in der for-Schleife nach dem Wörterbuch – arjun

+0

Warum haben Sie eine Python-Datei mit dem Namen 'test.json'? Auch list.append erwartet ein Listenobjekt nicht ein dict und selbst wenn es funktioniert hätte es nichts nützliches getan –

Antwort

3

list eine Klasse ist. append ist eine Methode dieser Klasse, die in Instanzen von list aufgerufen werden muss.

list.append(7) # error 

mylist = list() 
mylist.append(7) # ok 
+0

Ich bin ein Anfänger bitte machen Sie es klar, was ist 7 ?? ein Objekt?? mob1 ist mein Objekt, wo ich meine Daten gespeichert habe und ich muss mob1 durch 7 richtig ersetzen? – arjun

+0

@arjun Alles ist ein Objekt, aber das ist hier nicht relevant. Wenn Sie viele dict-Objekte erstellen möchten (wie zB Ihre 'mob1'), erstellen Sie zuerst eine leere Liste' many_mobs = [] 'und fügen Sie dann so viele Mobs wie möglich' may_mobs.append (mob1) 'ein. – zvone

+0

Ich habe es so bearbeitet; mob1 = { \t \t \t "Item": item1, \t \t \t 'Preis': price1, \t \t \t 'Desc': desc1 \t \t \t} \t mylist = [] \t mylist.append (mob1) \t print mob1 // bekomme immer noch die vollständige Liste der Daten in cmd prompt, aber wenn es in eine JSON-Datei geladen wird, bleibt das Problem gleich (ich bekomme nur die Details des letzten Elements). Es gibt 10 Elemente und bekomme nur die Details des 10. Elements nur so, wie es überschrieben wird – arjun

0

Haben Sie versucht list.append([mob1['Item'],mob1['Price'],mob1['Desc']])?

+0

ja ich habe das versucht, aber funktioniert leider nicht – arjun

Verwandte Themen