У меня есть .txt- файл, форматированный как словарь, например:
{'planet': 'earth', "country": "uk"}
Просто это, все. Я хотел бы добавить к этому позже. На данный момент я могу сохранить больше ключей и сохранить их, но...
Как я могу импортировать этот .txt- файл и использовать его в качестве словаря?
Вы можете использовать ast.literal_eval
import ast
with open('myfile.txt') as f:
mydict = ast.literal_eval(f.read())
Некоторое дополнительное чтение об использовании eval
vs ast.literal_eval
.
def fileToDictionary(filename):
with open(filename, 'r') as myfile:
data=myfile.read()
try:
return eval(data)
except:
return {}
использование:
dictionary = fileToDictionary('mydictionary.txt')
Это почти 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'}
json