编写检查以避免“IndexError: list index out of range”错误

-2 投票
1 回答
34 浏览
提问于 2025-04-13 21:28

我在写一个Python脚本时,需要在进入一个循环之前做个检查:

for fact_entry in range(len(facts['items'][0]['facts'])):
    [...]

我遇到了这个错误:

    [...]
    for fact_entry in range(len(facts['items'][0]['facts'])):
                                ~~~~~~~~~~~~~~^^^
IndexError: list index out of range

如果我加了一些打印命令,我发现当'facts'包含这个值时,我会收到这个错误:

{'items': [], 'totalCount': 0, 'partialResults': False, 'metadata': {'processingTime': 2}

那么,我该怎么检查这个值,以便跳过这个循环呢?

1 个回答

1

把你的for循环放在这个if条件下面。

if len(facts['items'])>0:
   for fact_entry in range(len(facts['items'][0]['facts'])):

顺便提一下,fact_entry会是一个索引,因为range会返回一系列可以迭代的数字,你可以通过以下方式获取fact_entry:

for fact_entry in facts['items'][0]['facts']:
  ....

撰写回答