我有一个以下带有多个嵌套字典的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格式。
任何帮助将不胜感激。先感谢您。
答案 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)