получить словарь из файла python
есть файл txt, содержащий следующую инфу:
- name: python-3.8.9-amd64.exe\n
link: https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd64.exe\n
sha256summ: e15bc52914b6daee9630360bfe3708ee646d4e4ce34bf5368066213009af70a6\n
- name: python-3.8.9-amd645.exe\n
link: https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd645.exe\n
sha256summ: e15bc52914b6daee9630360bfe3708ee646d4e4ce34bf5368066213009af70a6
для примера повторяется два раза, может быть бесконечным, мне нужно получить список, содержащий name: link: sha256sum: лучше в цикле, для дальнейшей обработки списка, сохранять его не нужно
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Судя по виду, формат этого файла - YAML. Устанавливаете pyyaml (pip install pyyaml), дальше парсится фактически в одно действие:
file = """
- name: python-3.8.9-amd64.exe\n
link: https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd64.exe\n
sha256summ: e15bc52914b6daee9630360bfe3708ee646d4e4ce34bf5368066213009af70a6\n
- name: python-3.8.9-amd645.exe\n
link: https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd645.exe\n
sha256summ: e15bc52914b6daee9630360bfe3708ee646d4e4ce34bf5368066213009af70a6
"""
import yaml
from pprint import pprint
pprint(yaml.safe_load(file))
Вывод:
[{'link': 'https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd64.exe',
'name': 'python-3.8.9-amd64.exe',
'sha256summ': 'e15bc52914b6daee9630360bfe3708ee646d4e4ce34bf5368066213009af70a6'},
{'link': 'https://www.python.org/ftp/python/3.8.9/python-3.8.9-amd645.exe',
'name': 'python-3.8.9-amd645.exe',
'sha256summ': 'e15bc52914b6daee9630360bfe3708ee646d4e4ce34bf5368066213009af70a6'}]