Я пытаюсь создать словарь с двумя ключами, но получаю KeyError при назначении элементов. Я не получаю ошибку при использовании каждого из ключей отдельно, и синтаксис кажется довольно простым, поэтому я в тупике.KeyError при построении многомерного словаря в Python
searchIndices = ['Books', 'DVD']
allProducts = {}
for index in searchIndices:
res = amazon.ItemSearch(Keywords = entity, SearchIndex = index, ResponseGroup = 'Large', ItemPage = 1, Sort = "salesrank", Version = '2010-11-01')
products = feedparser.parse(res)
for x in range(10):
allProducts[index][x] = { 'price' : products['entries'][x]['formattedprice'],
'url' : products['entries'][x]['detailpageurl'],
'title' : products['entries'][x]['title'],
'img' : products['entries'][x]['href'],
'rank' : products['entries'][x]['salesrank']
}
Я не верю, что этот вопрос лежит feedparser (который преобразует XML в Словаре) или с результатами я получаю от амазонки, так как у меня нет никаких проблем, строящих Dict, когда либо с помощью «allProducts [х ] 'или' allProducts [index] ', но не оба.
Что мне не хватает?
Красивыми, я новичок в Python и забыть что он не автовивит. Зарегистрироватся и поддержит вас, спасибо! – kasceled
@tippytop: Спасибо, рад помочь (вы можете щелкнуть по галочке над подсчетом голосов, чтобы отметить мой ответ, как принято). Поскольку вы новичок в Python (вы говорите как программист Perl ;-)), вы можете не знать, что разница между 'range' и' xrange' - 'range' создает список всех чисел (в памяти), тогда как 'xrange' создает итератор, который генерирует числа один за другим. В этом случае 'range' в порядке, так как вы создаете только небольшой список, но обычно предпочитаете' xrange'. – Cameron