在python中进行这种dict匹配的最佳方法是什么?

时间:2015-07-02 12:49:09

标签: python

我需要创建一个报告,其中包含从数据中获取的值,但数据有时可能包含某些键,有时则不会。因此,而不是直接检查数据字典中的每个键,然后将其存储在映射到特定键的报告中。

有更好的方法吗?

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}valuevalue_2。但是在第二种情况下,只有一个密钥存在,它应该取值value_3

2 个答案:

答案 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]