我需要创建一个报告,其中包含从数据中获取的值,但数据有时可能包含某些键,有时则不会。因此,而不是直接检查数据字典中的每个键,然后将其存储在映射到特定键的报告中。
有更好的方法吗?
ISerializable
值是我知道数据中存在的一些关键。举个例子,我可能会将数据发送为:
def create_new_report(self, data):
#data is a dict
if "value" in data:
report["value"] = data["value"] # I don't want to do this for all the keys.
或者我可以将其作为{"value": 1, "value_2": 2, "value_3": 3}
发送,而不是其他任何内容。因此,默认情况下,报告应包含所有3个密钥:{"value":1}
,value
,value_2
。但是在第二种情况下,只有一个密钥存在,它应该取值value_3
。
答案 0 :(得分:3)
我刚看了你的评论,这清楚了一些事情。我想这样的事情可以做到这一点:
for key in ['value', 'value_1', 'value_2']:
report[key] = data.get(key, None) # or just data.get(key), since None is the default
答案 1 :(得分:-1)
因此,如果您想使用数据中的所有“值”,您可以通过字典键的内置函数从数据中获取所有键()
所以你可以这样做:
for data_value in data.keys():
report[data_value] = data[data_value]