2011-11-07 35 views
0

我有long text。我將這個字符串轉換爲字典。想將最後一段存入任何變量

這裏是代碼

data_dict = {}  
filter_dict = {}  
for each in text.split("\n"): 
    temp = each.split('=') 
    if len(temp) == 2: 
     data_dict[temp[0]] = temp[1] 
data = dict((k.strip(), v.strip()) for k, v in data_dict.iteritems()) 

這裏的輸出是從文本轉換爲快譯通

{'producer': 'Sailadhar Baruah', 
'image': 'paporithefilm.jpg', 
'distributor': '', 
'alt': '', 
'image size': '', 
'gross': '', 
'writer': 'Jahnu Barua', 
'cinematography': 'Binod Pradhan', 
'music': 'Satya Baruah P. P. Vidyanathan', 
'followed by': '', 
'narrator': '', 
'director': 'Jahnu Barua', 
'released': '1986', 
'studio': 'Dolphin s Pvt. Ltd', 
'starring': 'Gopi Desai Biju Phukan Sushil Goswami Chetana Das Dulal Roy', 
'editing': '', 
'name': 'Papori', 
'language': 'Assamese languageAssamese', 
'country': 'Assam, IND', 'budget': '', 
'caption': 'A Screenshot', 
'preceded by': '', 
'runtime': '144 minutes'} 

我只是想知道哪裏是我的最後一段到哪裏去了?我可以將最後一段文字存儲到任何變量嗎?謝謝

+1

您的最後一段沒有像您所期望的那樣的'key = value'格式...或者,是最後一段爲'後面跟着的值嗎? – sberry

+0

您嘗試解析的文本:它是純文本格式還是XML格式?在您提供的dpaste鏈接上,它的語法是XML。 – shimofuri

+0

@shimofuri它的純文本。 –

回答

1

正如已經指出的那樣,只有當你有key = value格式時才匹配。試試像這樣的東西。

text = file("text.txt", "r").readlines() 

skip_keys = ('film', '') 
data_dict = {} 
for each in text: 
    temp = [x.strip() for x in each.split('=')] 
    if temp[0] in skip_keys: 
     continue 
    if len(temp) == 2: 
     data_dict[temp[0]] = temp[1] 
    else: 
     data_dict['no_key'] = temp[0] 
print data_dict 

在這裏,您的段落將被添加到'no_key'。我使用collections模塊中的defaultdict開始了我的答案,並將該值設置爲列表,以便可以跟蹤任何無鍵值,但是,如果您的格式一致,則上述內容應該可以工作。

1

您沒有將文本存儲在底部。唯一將值分配給字典條目的地方是在if(len)(temp)== 2之下。由於該文本段落沒有等號,所以這部分將簡單地通過並且不會做任何事情。你需要一個'其他地方'

相關問題