Файл Python для цикла

#python #dictionary #for-loop #key #text-files

#python #словарь #для-цикла #Клавиша #текстовые файлы

Вопрос:

Я новичок в python, поэтому извините мою глупость. Я пытаюсь выполнить итерацию по словарю, который находится в файле (.txt). Однако я хочу перебирать только ключи из словаря, а не значения. Я пытался часами, но не добился никакого прогресса. Спасибо за помощь.

 kluizen = {
    11;kaasstengel,
    1;geheim,
    5;kluisvanpietje,
    12;z@terd@g
 } #the number of a locker with the password afterwards.

f = open('fa_kluizen.txt', 'r') 
contents = f.read() 
print(contents) 

for numbers in contents: print(numbers) 
f.close()
  

Комментарии:

1. for key in dictionary: Если вы выполняете итерацию по словарю, вы получаете ключи.

2. Поделитесь своими попытками (кодом) и образцом вашего файла

3. Отредактируйте свой пост при добавлении дополнительной информации, а не в комментарии и объясните, что к чему

4. Вы должны использовать двоеточия в вашем словаре, а не точки с запятой. Есть ли в импортируемом текстовом файле точки с запятой?

Ответ №1:

Попробуйте это:

 import json

with open("path/to/file.txt", "r") as f:
    # read the file as dictionary
    file_as_dict = json.load(f) 

    # iterate over the keys
    for key in file_as_dict:
        print(key)
  

Ответ №2:

Этот файл не содержит словаря, поскольку вы не можете хранить буквально словарь Python в файле.

Но я согласен с вами, что это похоже на словарь в том смысле, что в нем информация организована в парах ключ-значение.

Вы заинтересованы в получении ключей оттуда: это номер ячейки.

 mykeys = []

with open('fa_kluizen.txt', 'r') as fp:
    for line in fp:
        if ';' in line:
            key, value = line.strip().split(';')

            mykeys.append(key)


# now we have it in mykeys list

for key in mykeys:
    print(key)

  

Пожалуйста, попробуйте это: