如何在Python中将字典格式的TXT文件读取为可用字典对象?
问题
我有一个如下格式(字典格式)的TXT文件:
{'EX1':'No Information Stored',
'EX2':'Foundation',
'EX3':'Foundation',
'EX4':'No Information Stored'}
请问如何将该文件读取到Python中,使其可以作为字典来使用?
解决方案
方法1:用ast.literal_eval()(首推)
这是最安全靠谱的方式,专门用来解析Python的字面量结构,完美兼容单引号格式的字典:
import ast # 打开文件读取内容 with open('你的文件名.txt', 'r', encoding='utf-8') as f: file_content = f.read() # 转成字典 result_dict = ast.literal_eval(file_content) # 测试调用 print(result_dict['EX2']) # 会输出 Foundation
它只会解析合法的Python字面量,不会执行任何危险代码,比直接用eval()安全太多。
方法2:替换引号后用json.loads()
JSON规范要求用双引号,所以可以先把文件里的单引号替换成双引号,再用JSON模块解析:
import json with open('你的文件名.txt', 'r', encoding='utf-8') as f: file_content = f.read().replace("'", '"') result_dict = json.loads(file_content) print(result_dict['EX3']) # 输出 Foundation
⚠️ 注意:如果你的字典值里本身包含单引号(比如'It's a test'),这种替换会破坏内容,这种情况就别用这个方法了。
方法3:直接用eval()(强烈不推荐)
虽然能直接转成字典,但eval()会执行文件里的任意代码,如果文件被篡改过,很容易出安全问题,除非你100%确定文件内容绝对安全,否则别用:
with open('你的文件名.txt', 'r', encoding='utf-8') as f: file_content = f.read() result_dict = eval(file_content)
内容的提问来源于stack exchange,提问作者AScientist9797
相关产品推荐
相关产品推荐

