2017-03-17 38 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 –