2016-04-13 7 views
1

JSONデータからいくつかの別の画像リンクをPythonで解析しようとしていますが、正しいレベルに掘り下げている問題があります。項目の複数の出現箇所を辞書に解析する

多くのアイテムについて、私は以下の例で成功し、必要なものすべてを取り戻しました。この例の外は、すべてがキー:値の1:1の比率ですが、この値は1つのキーに関連付けられた複数の値があります。

resultsdict['item_name'] = item['attribute_key'] 

私はresultsdictにすべてを追加してきた= {}、私は印刷するとき、以下のサンプル文字列を取得することができるだけです。

INPUT:

for item in data['Item']: 
    resultsdict['images'] = item['Variations']['Pictures'] 

OUTPUT(のみ関連セクション):

'images': [{u'VariationSpecificPictureSet': [{u'PictureURL': [u'http//imagelink1'], u'VariationSpecificValue': u'color1'}, {u'PictureURL': [u'http//imagelink2'], u'VariationSpecificValue': u'color2'}, {u'PictureURL': [u'http//imagelink3'], u'VariationSpecificValue': u'color3'}, {u'PictureURL': [u'http//imagelink4'], u'VariationSpecificValue': u'color4'}] 

私は私の最初の入力の最後に['VariationPictureSet']['PictureURL']を追加することができますように私は感じるが、それが原因のエラーがスローされますインデックスは整数ではなく、文字列です。次のように

理想的には、私は、ちょうどURLの簡単なカンマ区切りリストとして出力を確認したいと思います:

OUTPUT:

'images': http//imagelink1, http//imagelink2, http//imagelink3, http//imagelink4 
+0

それらを変換する必要があります。 –

+0

@uzzeeどの入力を試しているかによって異なります。入力の他の部分をコピーすると、私は使用するでしょう... resultdict ['images'] = items ['Variations'] ['Pictures'] ['VariationsSpecificPictureSet'] ['PictureURL'] :リストインデックスは文字列でなければなりません – Winklevoss333

+0

OK、多分 'results 'を試してみましょう[images'] = items ['Variations'] ['Pictures'] [0] ['VariationsSpecificPictureSet'] [0] ['PictureURL']' –

答えて

0

ビットを必要とあなたのコメントへの回答コードをそれに加えます。

使用すると、1つの要素のリストを取得するので、私は今、あなたが助けを

for image in resultsdict['images']['VariationsSpecificPictureSet']: 
    print(image['PictureUR‌​L']) 
0

感謝を使用することができ、この

for item in data['Item']: 
    resultsdict['images'] = item['Variations']['Pictures'][0] 

を使用することをお勧めします

for item in data['Item']: 
    resultsdict['images'] = item['Variations']['Pictures'] 

を使用して、@ uzzee、それは感謝しています。私はそれを手直しして、次のコードですべての画像URLの連続文字列を引き出すことができました。それはあなたがユニコード文字列を得たように見え、そしておそらくので、正確に、あなたが得るエラーは何ですか、それはこのようになりますし、リストのリスト全体を引き込む合計なし

resultsdict['images'] = sum([x['PictureURL'] for x in item['variations']['Pictures'][0]['VariationSpecificPictureSet']],[]) 

...

resultsdict['images'] = [x['PictureURL'] for x in item['variations']['Pictures'][0]['VariationSpecificPictureSet']] 
関連する問題