python - 如何找出变量的状态/内容/值
问题描述
我通过 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))
解决方案
使用字典的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
异常
推荐阅读
- apache-spark - pyspark:返回所有单元格匹配正则表达式的列
- vuejs2 - 实现handsontable时未定义导航器
- javascript - 将 svg 存储在浏览器缓存中并在需要时检索
- java - oracle数据库中数据仓库的SQL语句查询示例
- javascript - 如何检查 api 调用是否已完成
- botframework - 使用 Typscript 创建的虚拟助手 - 在 Bot Framework Emulator 中运行没有响应
- c# - Razor 类库不包含 DLL 中的视图
- java - 弹性搜索 JPA 存储库不提供 findAll 和 findBy... 方法的结果
- nginx - Nginx - 为不同的用户将 cookie 从一个 url 设置到另一个
- mongodb - 如何使用副本集以安静模式运行 mongo shell