You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含嵌套字典的文本文件读取为Python嵌套字典?

读取含嵌套字典的文本文件为Python嵌套字典

你的文本文件内容本身符合Python字典的语法规范,不需要逐行拆分处理,直接读取后解析即可,以下是两种可行方案:

推荐方案:使用ast.literal_eval(安全可靠)

ast.literal_eval专门用于解析Python字面量(比如字典、列表、元组等),不会执行任意代码,安全性远高于eval。

import sys
import ast

param_file = sys.argv[2]

# 读取文件全部内容
with open(param_file, 'r') as file:
    file_content = file.read()

# 提取字典部分:移除开头的"experiment_setup = "前缀
dict_content = file_content.split('=', 1)[1].strip()

# 解析为嵌套字典
experiment_setup = ast.literal_eval(dict_content)

# 验证结果
print(experiment_setup)
print(type(experiment_setup))  # 输出 <class 'dict'>

不推荐方案:使用exec(存在安全风险)

如果能确保文件内容绝对安全,也可以直接执行文件中的代码片段,但这种方式会执行任意代码,若文件被篡改可能导致安全问题:

import sys

param_file = sys.argv[2]

with open(param_file, 'r') as file:
    file_content = file.read()

# 执行代码,将字典存入局部变量
local_vars = {}
exec(file_content, globals(), local_vars)
experiment_setup = local_vars['experiment_setup']

print(experiment_setup)

原代码的问题

你原来的代码通过逐行按:拆分键值对,仅适用于扁平的单层级键值结构,无法识别嵌套字典的层级关系,因此无法处理这类复杂结构。

内容的提问来源于stack exchange,提问作者TheLordRaj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:53:15