2012-05-16 2 views
0

У меня есть список языков в моем хранилище данных для страны, которая хранится так:список питон элементы и преобразовывать языковые коды в имена

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

я хочу вывод как:

синг AF, пс, UZ-AF, тк

или

фа-AF - пс, UZ-AF - тк

я ВГА e попробовал пару вещей, но пока не удалось. похоже, что данные, которые были импортированы в хранилище данных, не были импортированы должным образом. Любая помощь Что касается этого, будем очень благодарны.

Кроме того, мне бы хотелось, чтобы ваши предложения по отображению имени языка с этими кодами.

, например, если у нас есть «EN-US», то мы хотели бы, чтобы отобразить его как English (United States) (Примечание:. Мы не имеем названия языка, хранящиеся в хранилище данных)

ответ

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'] 

Названия языков могут быть сохранены в словаре, например as:

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

Смежные вопросы