Python-конвертировать код валюты в its sign

в Python, как конвертировать код валюты в его знак?

например, USD будет преобразовано в $ и JPY будет преобразовано в ¥.

если нет общего способа сделать это, есть ли простой словарь из них в Интернете?

спасибо.

5 ответов


С помощью locale:

import locale

locales=('en_AU.utf8', 'en_BW.utf8', 'en_CA.utf8',
    'en_DK.utf8', 'en_GB.utf8', 'en_HK.utf8', 'en_IE.utf8', 'en_IN', 'en_NG',
    'en_PH.utf8', 'en_US.utf8', 'en_ZA.utf8',
    'en_ZW.utf8', 'ja_JP.utf8')
for l in locales:
    locale.setlocale(locale.LC_ALL, l)
    conv=locale.localeconv()
    print('{ics} ==> {s}'.format(ics=conv['int_curr_symbol'],
                                 s=conv['currency_symbol']))

выходы:

AUD  ==> $
BWP  ==> Pu
CAD  ==> $
DKK  ==> kr
GBP  ==> £
HKD  ==> HK$
EUR  ==> €
INR  ==> ₨
NGN  ==> ₦
PHP  ==> Php
USD  ==> $
ZAR  ==> R
ZWD  ==> Z$
JPY  ==> ¥

обратите внимание, вам нужна информация, язык, установленных на вашей машине. На Ubuntu это означает, что у вас есть право пакеты.

в системах * nix вы можете найти список известных локалей (например,en_GB.utf8) С

locale -a

Я не знаю, как получить этот список из Python (без использования subprocess).


как о Бабель?

from babel import numbers
print numbers.format_currency(1500, 'USD', locale='en') # => ,500.00
print numbers.format_currency(1500, 'GBP', locale='fr_FR') # => 1 500,00 £UK

использовать dict.

>>> currencies = {'USD': '$', 'AUD': '$', 'EUR': '€'}
>>> print currencies['USD']
$
>>> print currencies['AUD']
$
>>> print currencies['EUR']
€
>>> print currencies['GBP']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'GBP'

тут этой помочь?

эта страница представляет собой список символов, используемых в повседневная жизнь, чтобы обозначить, что число является денежной стоимостью, такой как знак доллара"$", знак фунта" £", и знак евро "€".

важно - мы также поддерживаем полный список используемых трехбуквенных кодов международное различие валюта от другого, например " USD" для доллара США " GBP" для фунта Соединенного Королевства, и "ЕВРО" для евро. Чтобы увидеть полный список всех этих кодов см. наш XE.com - ISO 4217 тип валюты Список Кодов.

вы должны иметь возможность создать полезный dict отображение 3-буквенных кодов в соответствующий символ валюты Юникода.


Forex-python пакет преобразует код валюты в его знак.

>>> from forex_python.converter import CurrencyCodes
>>> c = CurrencyCodes()
>>> print c.get_symbol('GBP')
£

и вы можете конвертировать сумму из одной валюты в другую.

>>> c.convert('USD', 'INR', 10)
674.73

дайте ему попробовать