Использование файла .txt в качестве словаря

1

У меня есть .txt- файл, форматированный как словарь, например:

{'planet': 'earth', "country": "uk"}

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

Как я могу импортировать этот .txt- файл и использовать его в качестве словаря?

  • 1
    Используйте один из многих канонических форматов сериализации, то есть JSON, YAML, pickle и т. Д. В этом случае вам, вероятно, следует просто использовать JSON. Не сверните свою собственную сериализацию и не выведите строковое представление ваших объектов в текстовый файл и не называйте его сериализацией.
  • 0
    записать в файл как JSON и прочитать его как JSON с помощью модуля json
Теги:
file
dictionary

3 ответа

1
Лучший ответ

Вы можете использовать ast.literal_eval

import ast
with open('myfile.txt') as f:
    mydict = ast.literal_eval(f.read())

Некоторое дополнительное чтение об использовании eval vs ast.literal_eval.

0
def fileToDictionary(filename):
    with open(filename, 'r') as myfile:
        data=myfile.read()
    try:
        return eval(data)
    except:
            return {}

использование:

dictionary = fileToDictionary('mydictionary.txt')
0

Это почти json, но не совсем из-за этих одиночных кавычек вокруг 'planet' и 'earth'. Если вы контролируете код, который генерирует этот.txt файл, в первую очередь, сериализуйте его с помощью проверенного и проверенного инструмента, такого как stdlib json.dump.

Однако, если вы не контролируете источник, вы можете все еще безопасно literal_eval эти данные:

>>> from ast import literal_eval
>>> from pathlib import Path
>>> mydict = literal_eval(Path('myfile.txt').read_text())
>>> mydict
{'planet': 'earth', 'country': 'uk'}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню