我有一个应用程序,它的配置文件本身就是一个Python脚本,包含嵌套dict的dict(我知道这不是最佳实践)。看起来有点像这样:
config={'section-1': {'param1': 'value1', 'param2': 'value2'},
'section-2': {'param3': 'value3', 'param4': 'value4'},
'section-1': {'param5': 'value5', 'param6': 'value6'}
}
看看发生了什么,有人不小心重复了section-1
!在单元测试中很难捕捉到这一点,除非我不是在Python中导入文件,而是将其视为文本文件并对其进行解析。我本以为我可以使用dict()
来创建一个相同的结构
config=dict(section-1={'param1', 'value1'}, section-1={'param2': 'value2'})
用SyntaxError: keyword argument repeated
来解决这个问题,但不幸的是我实际上得到了SyntaxError: keyword can't be an expression
。没有范围用不包含-
的节名替换节名,也没有范围用经典INI文件或类似文件替换节名,因为船已经航行了很久。有什么办法可以套住重复的钥匙吗?你知道吗
我下面的答案将不起作用,因为在处理时
config
不会同时显示这两个值!无论如何,我会把答案留在这里。你知道吗一种方法是创建另一个dict,从中转储dict中的密钥:
遵循davidc所说的:“将其作为文本文件处理,在解析之前对其进行预处理以更改问题标签的形式”,这对您的示例很有用。。。你知道吗
您可以扩展逻辑来测试重复的参数、值对。你知道吗
相关问题 更多 >
编程相关推荐