2016-09-24 4 views
0

を受け取っ:はTypeError:ディスクリプタ「を追加は、」「リスト」オブジェクトが必要ですが、私はこのような辞書オブジェクト持ち、forループでは「辞書」

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

をし、私が追加しようとしたことが好き:

list.append(mob1) 

は、私は次のエラーを取得する:

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

あなたは何をしようとしていますか?辞書のどの要素をリストに追加しますか?あなたの問題を十分に説明せずに、他の人があなたを助けてくれることを困難にします。 –

+0

私はjsonファイルにロードしたときに、名前、価格、アイテムの説明をWebページから取得しようとしています.iamは名前、価格、および最後のアイテムの説明のみを取得しています。辞書の後にforループでlist.append()を使用しました – arjun

+0

なぜ 'test.json'という名前のpythonファイルがありますか?また、list.appendはdictではなくリストオブジェクトを期待していて、それがうまくいっていても何も役に立ちません。 –

答えて

3

listがクラスです。 appendは、listのインスタンスで呼び出されなければならないそのクラスのメソッドです。

list.append(7) # error 

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

私は初心者です、7は何ですか?オブジェクト?? mob1は自分のデータを保存したオブジェクトで、mob1を7に置き換える必要がありますか? – arjun

+0

@arjunすべてがオブジェクトですが、ここでは関係ありません。多くのdictオブジェクト( 'mob1'など)を作成したい場合は、まず空リスト' many_mobs = [] 'を作成し、必要に応じてmob_mobs.append(mob1)を入れてください。 – zvone

+0

このように編集しました。 MOB1 = { \t \t \t "アイテム":ITEM1、 \t \t \t '価格':price1、 \t \t \t 'DESC':desc1 \t \t \t} \tマイリスト= [] \t mylist.append( mob1) \t print mob1 //まだcmdのプロンプトでデータの完全なリストを取得していますが、jsonファイルにロードされたときに問題が残ります(i、e)。 10個のアイテムがあり、10番目のアイテムの詳細だけが上書きされるようになっています – arjun

0

list.append([mob1['Item'],mob1['Price'],mob1['Desc']])を試しましたか?

+0

はい私はこれを試しましたが、unfortunatleyは動作しません – arjun

関連する問題