Мой код работает, но иногда происходит 'ContentTypeError' object is not subscriptable на этапе цикла

Всем привет. Я делаю парсинг сайта через API. Парсинг проходит успешно. Но иногда (>иногда<) происходит ошибка во время обработки циклом. Просто как повезет. Данные парсинга после обработки циклом идут в БД. Сам цикл такой:

all_parse = []
for j in range(len(prices)):
    all_parse.append([127 + j,
                      f'{[prices[j]["col"]["Methods"][i]["id"] for i in range(len(prices[j]["col"]["Methods"]))]}',
                      prices[j]["col"]["asset"], prices[j]["col"]["price"], prices[j]["column"]["Name"], prices[j]["col"]["Amount_min"],
                      prices[j]["col"]["Amount_max"], "http://link" + prices[j]["column"]["user"],
                      update_time, "BLUE"])

Как можно увидеть в цикле, весь необработанный парсинг идет в переменную 'prices'. И далее циклом обрабатывается в нужный для БД вид, уходя в список 'all_parse'. Если я делаю print(prices), то весь парсинг отображается. Но на этапе цикла >периодически< происходит ContentTypeError' object is not subscriptable. Что с этим делать?

Возможно, если это важно, далее all_parse идет в БД таким образом:

(all_parse[j]) for j in range(len(all_parse))

Полный текст ошибки:

Traceback (most recent call last):
  File "C:\OSPanel\domains\project\python\run.py", line 94, in <module>
    asyncio.run(main(glasses=["BUY"], assets=["dress", "boot", "cloath", "shirt", "short", "glove", "hat"],
  File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\name\AppData\Local\Programs\Python\Python311\Lib\asyncio\base_events.py", line 650, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\OSPanel\domains\project\python\run.py", line 57, in main
    f'{[prices[j]["col"]["Methods"][i]["id"] for i in range(len(prices[j]["col"]["Methods"]))]}',
                                                                             ~~~~~~~~~^^^^^^^
TypeError: 'ContentTypeError' object is not subscriptable

Сначала я думал, что ошибка в

f'{[prices[j]["col"]["Methods"][i]["id"] for i in range(len(prices[j]["col"]["Methods"]))]}'

Но если заменить это на, к примеру 'QWERTY', то та же подпись просто перескакивает на следующий этап цикла


Ответы (1 шт):

Автор решения: Pro Task

Проблема решилась. Спасибо gil9red за подсказку как убрать лишний код из цикла и CrazyElf за подсказску с isinstance. В итоге нужно было просто сделать условие в цикле:

for price in prices:
    if isinstance(price, dict):
→ Ссылка