Python:如何读取包含多个嵌套词典的.py(配置)文件,进行修改,然后将更新后的内容保存到.py?

时间:2019-03-14 20:23:15

标签: python dictionary

我有一个以下带有多个嵌套字典的python配置文件:

# sample_config.py
import numpy as np
import datetime

params1 = {key1: {key2: val1,
                  key3: val2}}

params2 = {key4: datetime(2018, 3, 14)}

params3 = {key5: np.linspace(0, 1, 21)}

我有一个主Python文件,该文件调用sample_config.py,使用params字典并更新params字典。

# main.py
config = __import__('sample_config')
params1 = config.params1
params2 = config.params2
params3 = config.params3

test_out = test_function(input1, input2, params1)

params1['key1'] = updated_value

等等等

我想做的是使用main.py中更新的params字典更新sample_config.py(或创建一个新的config .py文件)。

在过去几个小时的搜索中,许多人建议使用json文件,但是由于配置文件使用python模块,因此,我希望尽可能将其保持为.py格式。

任何帮助将不胜感激。先感谢您。

1 个答案:

答案 0 :(得分:0)

您可以将整个字典转换为字符串,然后将其写入.py文件。这是我的意思的示例:

updated_params_1 = {'a':1, 'b':2, 'c':3}
updated_params_2 = {'d':4, 'e':5, 'f':6}
new_python_file_contents = ('''
    new_params_1 = {0}
    new_params_2 = {1}
'''.format(updated_params_1, updated_params_2))
with open('updated_params.py', 'w') as f:
    f.write(new_python_file_contents)