2013-12-12 15 views
1

我有這個字符串:字符串中的選擇文本,然後轉換成表格在python

String=''' 
    service {'name': 'services'} 
    enable yes 
    frequency 7200 
    service {'name': 'files'} 
    enable yes 
    frequency 6000 
    none 
''' 

,我期待在一個錶轉換這樣的方式:

table = [[services, yes, 7200], 
[files, yes, 6000]] 

而且總是在最後一行有這個「無」告訴是字符串的結束,只是忽略表中的這一行。 任何模塊或功能?

+0

有很多方法可以做到這一點。如果您嘗試解析此問題,您可能會獲得更多幫助。 – mrKelley

回答

0

你必須自己解析它。

您可以使用re模塊編寫正則表達式來執行此操作,或者您甚至可以使用字符串方法startswith

你可以通過循環,並在看到line.strip().startswith('service'),你可以關閉彈出的右側,使用json模塊,做json.loads(rightside),並做了查找的關鍵name

找到該代碼後,請輸入代碼路徑以期望startswith('enable')startswith('frequency'),然後右邊並解析它。你也可以使用一個多的正則表達式查找所有的:

r'^\s*service (.*)$\n^\s*enable (\w+)$^\s*frequency (\d+)$' 

我沒有用在同時多正則表達式,但像一些模式應該工作。

總之,與startswith實施和編寫自己的邏輯來做到這一點,或者通過多正則表達式運行它。無論哪種方式,最好使用json模塊來獲取服務名稱。

相關問題