我通过 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: frameportexcept NameError: print("no frameport defined") frameport = 1print("frameport is:" (frameport))
2 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
使用字典的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
TA贡献1993条经验 获得超5个赞
get
似乎它对你想要做的事情很方便:
frameport = response["body"]["meta"].get("frame_port", 1)
如果没有键"frame_port"
,则frameport
变量将设置为 1。
添加回答
举报
0/150
提交
取消