2017-03-17 39 views
1

我试图让我的ini文件(通过configparser)作为变量,从节中的所有值:如何把值从字典到可变

hue310section = dict(parser.items('HUE_310')) 

for keys, value in hue310section.items(): 
    pairs = keys + ' = ' + value 
    print(pairs) 

它给了我partnewfilepath = http://some_site:PORT/about,但我不知道如何导入这个输出为一个python变量,我可以在我的代码中使用partnewfilepath。当然,其中一个部分的值比一个部分更多,我想要改变所有变量。我试图找到解决方案,但我想我错过了一些东西,因为我对Python的知识还不够。我想我需要重建我的for声明,但不知道如何在这个特定问题中做到这一点。

我的config.ini文件看起来像:

[HUE_310] 
partNewFilePath = ${common:domain}/about 
otherValues = something 
nextvalue = another something 

UPDATE:

我想我需要更详细地说明一下我想要实现。在我的代码的其他部分,我检查我想要处理的网站版本。如果该网站有,比方说版本3.10我想从我的ini文件中获得HUE_310的所有值,并将它们用作python变量。其余的代码使用这些变量,如果网站版本会发生变化,我可以从我的ini文件的其他部分获取值,并将这些值提供给python变量并使用它们。我认为一些变量会从版本变为版本,这就是为什么我要准备我的代码来检查这个。如果网站会发生变化,它也给我一些自由来修改一些变量。 我希望现在更清楚。

回答

2

你不需要一个新的变量或for循环,你已经有hue310section字典。

你可以使用

hue310section['partNewFilePath'] 

这将等于

"http://some_site:PORT/about" 

注意后hue310section = dict(parser.items('HUE_310')) otherValuesnextvalue键也将被定义。

+0

但我需要更通用的解决方案。我假设我不知道什么是在配置文件部分。我只想从特定的部分导入所有的部分作为变量在我的代码中使用它们。因此,我需要从HUE_310部分取得所有内容,并在我发现我需要那些仅来自该部分的代码时将这些内容作为变量存放在我的代码中。 – heniekk

+0

@heniekk:'dict'将会有这个信息。你可以遍历他们的密钥,或者你可以只需要你需要的密钥。定义变量没有额外的好处。 –

+0

我编辑了我的问题并详细说明了我想用我的代码实现的内容。请立即检查。 – heniekk

1
from configobj import ConfigObj 

parser_data = ConfigObj(config_path) 
current = parser_data['HUE_310'].get('partNewFilePath', 'http://www.default.com') 

config_path是文件路径

http://www.default.com的是,特定的键没有找到的情况下,默认值。

+0

有一个名为'example.com'的特殊域名,请参阅https://www.iana.org/domains/reserved –