Получить символ валюты в локали - PullRequest
0 голосов
/ 23 сентября 2018

Как получить соответствующий символ валюты по заданному альфа-3 кодовому имени валюты, используя локаль в python?

Я делаю:

import locale, re
def get_currency_symbol(alpha_3='USD'):
    locales_all = locale.locale_alias.values()
    for l in locales_all:
        try:
            try:
                locale.setlocale(locale.LC_ALL, l)
            except NameError:
                l = re.sub('\..*$','.utf8',l) # On Linux the file are normally
                                              # finished with '.utf8'.
                locale.setlocale(locale.LC_ALL, l)

            conv=locale.localeconv()
            if conv['int_curr_symbol'] == alpha_3.upper():
                return conv['currency_symbol']
        except:
            pass
    return None

Но у меня проблема симена локалей:

locale.Error: неподдерживаемая настройка локали

1 Ответ

0 голосов
/ 23 сентября 2018

В документации setlocale() говорится, что если задан аргумент локали, это должно быть либо имя локали, либо итерация, содержащая обе части псевдонима.Так что либо измените строку, которая выбирает локали:

Первый подход лучше, второму может потребоваться больше уточнений для работы со всеми псевдонимами локали.

Подробнее в документации

...