2012-05-16 63 views
0

我有在對其存儲這樣的國家我的數據存儲的語言列表:蟒蛇列表項和轉換語言代碼名稱

[u"[u'fa-AF'", u" u'ps'", u" u'uz-AF'", u" u'tk']"] 

我想要的輸出:

FA- AF,PS,UZ-AF,TK

FA-AF - PS,UZ-AF - TK

我甲肝e嘗試了幾件事但尚未成功。似乎已導入數據存儲的數據未正確導入。任何幫助有關這將不勝感激。

此外,我想就如何顯示這些代碼的語言名稱的建議。

例如,如果我們有「EN-US」然後我們想顯示爲英語(美國) (注:我們沒有存儲在數據存儲中的語言名稱)

回答

4
a = [u"[u'fa-AF'", u" u'ps'", u" u'uz-AF'", u" u'tk']"] 

看起來像是原始字符串的簡單分割。你可以重新編譯字符串或剝奪個人的元素:

import ast 
codes = [ast.literal_eval(x.strip('[] ')).encode() for x in a] 

codes = [elem.encode() for elem in ast.literal_eval(','.join(a))] 

都返回:

['fa-AF', 'ps', 'uz-AF', 'tk'] 

語言的名稱可以被存儲在字典中,這樣的如:

lang = {'fa-AF': 'farsi-Afghanistan', ... } 

並撥打電話

for code in codes: 
    print lang[code] 

或者您可以查看Babel庫。

+0

感謝您的快速響應,但我仍然得到這樣的錯誤:TypeError:strip arg必須是None,unicode或str – Amyth

+0

@Amyth - 然後嘗試重建字符串的其他可能性。看到我的答案。 – eumiro

+0

,完美謝謝。哪一個你認爲會更好地在字典中保存他們的代碼的語言名稱或使用外部庫來將代碼轉換爲名稱? – Amyth