Как преобразовать текст из файла в словарь? В каждой строчке текста есть символ "|". То что перед ним должно быть ключом, после - значением
В файле содержится текст:
Foundation|Asimov, Isaac
Foundation and Empire|Asimov, Isaac
Second Foundation|Asimov, Isaac
Нужно привести это к виду:
{'Foundation': 'Asimov, Isaac', 'Foundation and Empire': 'Asimov, Isaac', 'Second Foundation': 'Asimov, Isaac'}
Пробовал так:
with open(f'{filename}', 'r') as s:
data = s.read()
for i in data:
if '|' in i:
result = dict(enumerate(data.split()))
return result
но получается только:
{0: 'Foundation|Asimov, Isaac', 1: 'Foundation and Empire|Asimov, Isaac', 2: 'Second Foundation|Asimov, Isaac', 3: 'Dune|Herbert, Frank'}
Ответы (2 шт):
Автор решения: Эникейщик
→ Ссылка
result = {}
with open(f'{filename}', 'r') as s:
data = s.readlines() # читаем содержание файла в список
for line in data:
elements = line.split("|") # делим строку по "|" на части и сохраняем в список
result[elements[0]] = elements[1] # добавляем в словарь
Автор решения: SergFSM
→ Ссылка
конструктор dict() вы использовали немного не так, попробуйте примерно вот так:
with open(f'{filename}', 'r') as s:
data = s.read().split('\n')
result = dict((i.split('|')) for i in data)
для data = ['Foundation|Asimov, Isaac', 'Foundation and Empire|Asimov, Isaac', 'Second Foundation|Asimov, Isaac'] получаем результат:
{'Foundation': 'Asimov, Isaac',
'Foundation and Empire': 'Asimov, Isaac',
'Second Foundation': 'Asimov, Isaac'}