Нужно перенести словарь из файла в массив

Есть .txt файл из словарями

{'name': 'oleg', 'phone_mob': 'fef', 'phone_home': '4', 'phone_work': '4r', 'email': 'v'}
{'name': 'dima', 'phone_mob': 'fwewef', 'phone_home': 'wefwf', 'phone_work': 'wfwfe', 'email': 'fw'}

нужно перенести их в масив. Каждый словарь расположен с новой строчки и нужно чтобы у них был у каждого свой индекс. Тоесть должно выйти что-то типа такого A = [{...},{...},{...}] Пробовал через with open, через np.loadtxt всегда какие-то ошибки и не работает как нужно, уже больше дня мучаюсь с этой проблемой пол интернета перелазил не могу никак найти решения. Есть какие-то советы?


Ответы (1 шт):

Автор решения: aqua

Вы можете открыть файл для чтения и построчно читать, после чего пройтись по этому списку и преобразовать строку в словарь в строку используя метод json.loads(), или встроенную функцию eval

import json

with open("file.txt", "r", encoding = "utf-8") as f:
    file = f.readlines()

list_dict = []
for str_dict in file:
    str_dict = str_dict.replace("'", '"')
    dict_ = json.loads(str_dict)

    list_dict.append(dict_)

print(list_dict)

Или

with open("file.txt", "r", encoding = "utf-8") as f:
    file = f.readlines()

list_dict = []
for str_dict in file:
    dict_ = eval(str_dict)
    list_dict.append(dict_)

print(list_dict)
→ Ссылка