Python - Как открыть n разных файлов json и просто добавить.один раз - PullRequest
0 голосов
/ 30 ноября 2018

То, что я пытаюсь сделать, это то, что я хочу иметь возможность распечатать n раз в ожидании того, сколько json-файлов у меня есть в папке, в то время как он распечатывает все эти данные для каждого json, НО он должен добавить только в old_list один раз.

Мой код, который я кодировал, следующий:

old_list = ['Hello', 'How', 'Are', 'You']
new_list = ['Im', 'Fine', 'Today', 'You']

    while True:

        if new_list not in old_list:
            directory = os.fsencode('./slack')
            for counters, file in enumerate(os.listdir(directory)):
                filename = os.fsdecode(file)
                if filename.endswith(".json"):
                    with open('./slack/' + filename) as slackAttachment:
                        data = json.loads(slackAttachment.read())

                        data_list = []


                        data["attachments"][0]["footer"] = str(
                            data["attachments"][0]["footer"] + ' | ' + datetime.now().strftime(
                                '%Y-%m-%d [%H:%M:%S.%f')[:-3] + "]")

                        # -------------------------------------------------------------------------

                        print(data)

                        old_list.append(new_list)

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что она добавляется в список n раз в зависимости от того, сколько у меня файлов json и чтоЯ хочу сделать так, чтобы он распечатывал все json, но добавлял в список только один раз, а не n раз.

В этом случае у меня вопрос: как я могу добавить список только один раз, новсе еще сможете распечатать все эти jsons?

1 Ответ

0 голосов
/ 30 ноября 2018

Проблема в том, что while True вызывает печать вашего кода без остановки.Более того, if new_list not in old_list: - неправильный способ сравнения двух списков:

old_list = ['Hello', 'How', 'Are', 'You']
new_list = ['Im', 'Fine', 'Today', 'You']
data_list = []
directory = os.fsencode('./slack')
for newLst in new_list:
  if newLst in old_list:
    for counters, file in enumerate(os.listdir(directory)):
        filename = os.fsdecode(file)
        if filename.endswith(".json"):
                    with open('./slack/' + filename) as slackAttachment:
                        data = json.loads(slackAttachment.read())          
                        data["attachments"][0]["footer"] = str(
                            data["attachments"][0]["footer"] + ' | ' + datetime.now().strftime(
                                '%Y-%m-%d [%H:%M:%S.%f')[:-3] + "]")

                         print(data)

     data_list.append(newLst) # make sure to what you're ganna append

Обратите внимание, что я предполагаю, что остальная часть вашего кода работает хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...