python - 处理可变长度的字典
问题描述
我有一个 python 脚本,其中有一个返回字典的函数。函数返回的字典长度是动态的。例如返回的两个字典样本
样品 1
'ID': 'd1f1', 'counter': 1,'device_id': 35, 'equipment_id': 1, 20: 85.0, 14: 90.0, 43: 1, 34: 1
样品 2
'ID': 'd1f1', 'counter': 1,'device_id': 35, 'equipment_id': 1, 20: 85.0, 14: 90.0, 43: 1
在我的 python 脚本中,我解析了这个字典并将这些值保存在 db 中。
代码
ID = dict['device_id']
equipment = dict['equipment_id']
volts = dict[20]
power = dict[14]
health = dict[43]
status = dict[34]
在第二个字典中没有键 34 的值。所以我想将状态值保存为 null。但是,如果按照我目前正在执行的方式分配值,则会引发关键错误。有人可以帮我解决这个问题。
谢谢
解决方案
如果 dict 不包含某个键,似乎您想返回 None 。在这种情况下,您可以使用该get()
功能。如果键不存在,则返回值或 None。例如:
my_dict = {'a': 1}
a = my_dict.get('a')
b = my_dict.get('b')
在这种情况下, 的值为a
1, 的值为b
None。
一个更“pythonic”的解决方案是使用 try-except 块,您尝试在其中获取值,并在引发异常时返回 None 。
my_dict = {'a': 1}
try:
b = my_dict['b']
except KeyError:
b = None
推荐阅读
- ruby-on-rails - 没有路线匹配 [GET] "/simulations"
- vue.js - 登录方法在推送路由之前不等待调度动作完成
- java - 一个组件需要一个名为“mongoTemplate”的 bean,在 JUnit 5 控制器测试中找不到该 bean
- python - tkinter 故障中的 GIF
- python - 如何将操作节点的输出保存在 Tensorflow 训练的图中?
- r - 如何读取数据
- talos - Talos --> TypeError: __init__() 得到了一个意外的关键字参数“grid_downsample”
- javascript - 递归正在跳过值
- rust - 装箱一个 rusqlite Rows 迭代器
- c++ - 在窗口中显示任何内容之前和窗口抛光后无法进行介绍