首页 > 解决方案 > 处理可变长度的字典

问题描述

我有一个 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。但是,如果按照我目前正在执行的方式分配值,则会引发关键错误。有人可以帮我解决这个问题。

谢谢

标签: pythondictionary

解决方案


如果 dict 不包含某个键,似乎您想返回 None 。在这种情况下,您可以使用该get()功能。如果键不存在,则返回值或 None。例如:

my_dict = {'a': 1}
a = my_dict.get('a')
b = my_dict.get('b')

在这种情况下, 的值为a1, 的值为bNone。

一个更“pythonic”的解决方案是使用 try-except 块,您尝试在其中获取值,并在引发异常时返回 None 。

my_dict = {'a': 1}

try:
    b = my_dict['b']
except KeyError:
    b = None

推荐阅读