У меня есть следующий код, который запускается, если можно назначить Rank_Dict. Проблема заключается в том, что если Rank_Dict выглядит как пример A и имеет два набора значений, он отлично зацикливается, но если Rank_Dict имеет только одну пару значений, как в примере B, я получаю ошибку. Разве вы не можете перебрать результирующий набор, который может содержать только одно значение?
Ошибка:
File "product.py", line 116, in <module>
ProductCategoryId=ranking['ProductCategoryId']['value']
TypeError: string indices must be integers
Код:
try:
Rank_Dict=products_as_dict['Product']['SalesRankings']['SalesRank']
except:
print("Didn't find Product/SalesRankings/SalesRank")
else:
for ranking in Rank_Dict:
ProductCategoryId=ranking['ProductCategoryId']['value']
Rank=ranking['Rank']['value']
Пример данных A - отлично зацикливается
[{'ProductCategoryId': {'value': 'home_improvement_display_on_website'}, 'Rank': {'value': '1335712'}},
{'ProductCategoryId': {'value': '17416540011'}, 'Rank': {'value': '2593'}}]
Пример B - не удается выполнить цикл
{'ProductCategoryId': {'value': 'home_improvement_display_on_website'}, 'Rank': {'value': '55928'}}