比较的Dict值在python中没有显示相同

时间:2018-12-08 15:39:42

标签: python json python-2.7 dictionary if-statement

因此,我有一个实质上检查文件名是否相同的函数。即使键名相同,我也不明白,并且值以不同顺序交换,为什么它输出的文件也不相同。如果它们的顺序完全相同,那么它将起作用。

我确信使用dict,顺序并不重要,但就我而言,顺序似乎很重要。首先,我希望能够打印出匹配的文件名,其次,我希望能够打印出不匹配的文件名。我已经开始编写代码,到目前为止,这是我的工作:

import os
import json

def sort_files():
    """Sort files in ascending order"""
    files = os.listdir('dates/')
    return sorted(files, reverse=True)


def current_day():
    """Get the current day file"""
    return sort_files()[0]


def previous_day():
    """Get the previous day file"""
    return sort_files()[1]


def compare_files():

    with open('dates/' + current_day(), 'r') as current_data_file, open('dates/' + previous_day(),
                                                                        'r') as pre_data_file:

        for current_data, previous_data in zip(current_data_file, pre_data_file):

            data_current = json.loads(current_data)
            data_previous = json.loads(previous_data)
            current_fn = data_current['File Name']
            previous_fn = data_previous['File Name']

            if sorted(previous_fn) == sorted(current_fn):
                print("OK")
                return


            if data_previous != data_current:
                print("Files are not the same")
                return

            else:
                print("Not the same")

0 个答案:

没有答案