Python – Convert currency code to its sign
Question:
In Python, how can I convert currency code to its sign?
For example, USD
would be converted to $
, and JPY
would be converted to ¥
.
If there isn’t a generic way to do this, is there any simple dictionary of these on the Web?
Thanks.
Answers:
Use a 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'
Does this help?
This page is a list of symbols used in
everyday life to denote that a number
is a monetary value, such as the
dollar sign “$”, the Pound sign “£”,
and the Euro sign “€”.
IMPORTANT – We also maintain a full
list of three-letter codes used
internationally to distinguish one
currency from another, such as “USD”
for the United States Dollar, “GBP”
for the United Kingdom Pound, and
“EUR” for the Euro. To see a complete
list of all of these codes, refer to
our XE.com – ISO 4217 Type Currency
Code List.
You should be able to create a useful dict mapping 3-letter codes to the appropriate Unicode currency symbol.
Using the locale module:
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']))
yields:
AUD ==> $
BWP ==> Pu
CAD ==> $
DKK ==> kr
GBP ==> £
HKD ==> HK$
EUR ==> €
INR ==> ₨
NGN ==> ₦
PHP ==> Php
USD ==> $
ZAR ==> R
ZWD ==> Z$
JPY ==> ¥
Note you need the locale information installed on your machine. On Ubuntu, this means having the right language-pack-*
packages installed.
On *nix systems, you can find the list of known locales (e.g. en_GB.utf8
) with
locale -a
I don’t know of a way to obtain this list from within Python (without using subprocess
).
How about Babel?
from babel import numbers
print numbers.get_currency_symbol('USD', locale='en') # => $1,500.00
print numbers.get_currency_symbol('GBP', locale='fr_FR') # => 1 500,00 £UK
Forex-python package will convert Currency code to its sign.
>>> from forex_python.converter import CurrencyCodes
>>> c = CurrencyCodes()
>>> print c.get_symbol('GBP')
£
And you can convert amount from one currency to other.
>>> c= CurrencyRates()
>>> c.convert('USD', 'INR', 10)
674.73
give it a try
Easiest way is to use babel get_currency_symbol function.
from babel.numbers import get_currency_symbol
get_currency_symbol('USD', locale='en_US')
In Python, how can I convert currency code to its sign?
For example, USD
would be converted to $
, and JPY
would be converted to ¥
.
If there isn’t a generic way to do this, is there any simple dictionary of these on the Web?
Thanks.
Use a 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'
Does this help?
This page is a list of symbols used in
everyday life to denote that a number
is a monetary value, such as the
dollar sign “$”, the Pound sign “£”,
and the Euro sign “€”.IMPORTANT – We also maintain a full
list of three-letter codes used
internationally to distinguish one
currency from another, such as “USD”
for the United States Dollar, “GBP”
for the United Kingdom Pound, and
“EUR” for the Euro. To see a complete
list of all of these codes, refer to
our XE.com – ISO 4217 Type Currency
Code List.
You should be able to create a useful dict mapping 3-letter codes to the appropriate Unicode currency symbol.
Using the locale module:
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']))
yields:
AUD ==> $
BWP ==> Pu
CAD ==> $
DKK ==> kr
GBP ==> £
HKD ==> HK$
EUR ==> €
INR ==> ₨
NGN ==> ₦
PHP ==> Php
USD ==> $
ZAR ==> R
ZWD ==> Z$
JPY ==> ¥
Note you need the locale information installed on your machine. On Ubuntu, this means having the right language-pack-*
packages installed.
On *nix systems, you can find the list of known locales (e.g. en_GB.utf8
) with
locale -a
I don’t know of a way to obtain this list from within Python (without using subprocess
).
How about Babel?
from babel import numbers
print numbers.get_currency_symbol('USD', locale='en') # => $1,500.00
print numbers.get_currency_symbol('GBP', locale='fr_FR') # => 1 500,00 £UK
Forex-python package will convert Currency code to its sign.
>>> from forex_python.converter import CurrencyCodes
>>> c = CurrencyCodes()
>>> print c.get_symbol('GBP')
£
And you can convert amount from one currency to other.
>>> c= CurrencyRates()
>>> c.convert('USD', 'INR', 10)
674.73
give it a try
Easiest way is to use babel get_currency_symbol function.
from babel.numbers import get_currency_symbol
get_currency_symbol('USD', locale='en_US')