【发布时间】:2020-06-07 00:45:50
【问题描述】:
我有两个不同的 Yaml 文件。一个 yaml 文件与另一个 yaml 文件略有不同。 我想打印两件事(即)与第二个文件相比时第一个文件中的差异,然后与第一个文件相比时第二个文件中的差异。下面是我的代码:-
import yaml
import pandas as pd
from deepdiff import DeepDiff
with open(r'C:\Users\Project\Desktop\DRsystem\stars4.yaml','r') as file:
df1 = pd.io.json.json_normalize(yaml.load(file, Loader=yaml.FullLoader))
with open(r'C:\Users\Project\Desktop\DRsystem\stars5.yaml','r') as file:
df2 = pd.io.json.json_normalize(yaml.load(file, Loader=yaml.FullLoader))
x = df1.to_dict()
print(x)
ddiff1 = DeepDiff(df1,df2)
print(ddiff1)
print("---------")
y = df2.to_dict()
print(y)
ddiff2 = DeepDiff(df2,df1)
print(ddiff2)
输出:上面的代码打印了差异,但是它显示了添加的新内容(即)任何不完全存在于其中一个 yaml 中的东西,这很好,但它不会打印任何共同点,只需稍作更改。如果我们可以看到附加的屏幕截图(yaml 文件以及我的输出),那就更好理解了
查询 1:为什么它只是打印 {'root3': 'denmark.enabled'}} 但不是 {0: True}}
查询 2:加拿大在两个文件中都存在,但在一个文件中启用:true 和另一个文件启用:false...所以为什么在我做差异时它没有显示,这是真的在一个文件中,在另一个文件中为假?
【问题讨论】:
标签: python pandas printing yaml diff