猿问

如何找出变量的状态/内容/值

我通过 websocket 捕获数据。这里变成body,body里面的meta,meta里面的frame_port。但并不是每个元都有一个 frame_port。


当我做



frameport = response["body"]["meta"]["frame_port"]

如果有框架端口,我将成为框架端口


然后我尝试设置 frameport = 1 如果 meta 中没有 frame_port,但在这里我需要帮助。


如果我执行以下操作,我根本不会得到任何打印,而不是在 try/excpet 块之前和之后。所以这个 try/excpet 不起作用。知道如何检查 meta 内是否有 frame_port 以及是否未设置为 0?



try:

   frameport

except NameError:

   print("no frameport defined")

   frameport = 1

print("frameport is:" (frameport))


qq_花开花谢_0
浏览 107回答 2
2回答

慕标5832272

使用字典的get默认值:frameport = response["body"]["meta"].get("frame_port", 1)请注意,这仅涵盖密钥不存在的情况。如果是这样,但包含您不想要的值,比如说None和 0,则该值需要单独处理:frameport = response["body"]["meta"].get("frame_port", 1)if frameport is None or frameport == 0:    frameport = 1就您的 try/catch 尝试而言,它不起作用,因为这一行:frameport无论价值如何,都不会抛出任何frameport异常

ibeautiful

get似乎它对你想要做的事情很方便:frameport = response["body"]["meta"].get("frame_port", 1)如果没有键"frame_port",则frameport变量将设置为 1。
随时随地看视频慕课网APP

相关分类

Python
我要回答