簡體   English   中英

Python - 嘗試除了多種可能性

[英]Python - try except with multiple possibilities

我正在嘗試以下操作:

try:
    scroll_token = response["scroll_token"]

except ValueError as e:
    logging.info(f'could not find "scroll_token" {e}')

    try:
        scroll_token = response["scroll_id"]
    except ValueError as e:
        logging.info(f'could not find "scroll_id" {e}')

如果響應中沒有“scroll_token”,那么我希望它查看響應中是否有“scroll_id”。 但由於某種原因,這不起作用,它只是在第一次嘗試案例中一直失敗並說:

scroll_token = response["scroll_token"] KeyError: 'scroll_token'

您正在捕獲錯誤的異常; 您期望可能會引發KeyError

try:
    scroll_token = response["scroll_token"]

except KeyError as e:
    logging.info(f'could not find "scroll_token" {e}')

    try:
        scroll_token = response["scroll_id"]
    except KeyError as e:
        logging.info(f'could not find "scroll_id" {e}')

您可以使用循環更簡單地編寫它。

for k in ["scroll_token", "scroll_id"]:
    try:
        scroll_token = response[k]
        break
    except KeyError:
        logging.info("could not find %s", k)
else:
    # What to do if neither key is found?
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM