我有一个 .txt 文件,其格式类似于字典,例如:
{'planet': 'earth', "country": "uk"}
仅此而已。我想稍后再添加更多内容。目前,我可以为它保存更多的密钥并保存,但是...
如何导入此 .txt 文件并将其用作字典?
答案 0 :(得分:1)
您可以使用ast.literal_eval
import ast
with open('myfile.txt') as f:
mydict = ast.literal_eval(f.read())
使用eval
和ast.literal_eval
的一些extra reading。
答案 1 :(得分: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'}
答案 2 :(得分:0)
def fileToDictionary(filename):
with open(filename, 'r') as myfile:
data=myfile.read()
try:
return eval(data)
except:
return {}
用法:
dictionary = fileToDictionary('mydictionary.txt')