Python 比较两个YAML文件中的键并打印差异?
如果我们有两个yaml文件,我们将如何比较密钥并打印不匹配和/或丢失的密钥?Python 比较两个YAML文件中的键并打印差异?,python,python-3.x,Python,Python 3.x,如果我们有两个yaml文件,我们将如何比较密钥并打印不匹配和/或丢失的密钥? 我尝试了DeepDiff,但它需要字典、iterables等,如何将yaml文件转换为字典并使用DeepDiff或任何其他方法?使用转换为扁平dict,然后进行比较。要将yaml文件加载为字典,可以使用PyYAML: import yaml with open("example.yaml", 'r') as fp: d = yaml.safe_load(fp) 试试这个软件包。我有一个类
我尝试了DeepDiff,但它需要字典、iterables等,如何将yaml文件转换为字典并使用DeepDiff或任何其他方法?使用转换为扁平
dict
,然后进行比较。要将yaml文件加载为字典,可以使用PyYAML:
import yaml
with open("example.yaml", 'r') as fp:
d = yaml.safe_load(fp)
试试这个软件包。我有一个类似的用例,发现它非常有用。以下内容对我很有用:
import yaml
from deepdiff import DeepDiff
def yaml_as_dict(my_file):
my_dict = {}
with open(my_file, 'r') as fp:
docs = yaml.safe_load_all(fp)
for doc in docs:
for key, value in doc.items():
my_dict[key] = value
return my_dict
if __name__ == '__main__':
a = yaml_as_dict(yaml_file1)
b = yaml_as_dict(yaml_file2)
ddiff = DeepDiff(a, b, ignore_order=True)
print(ddiff)