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.
The Forex-Python library provides the most direct way to get a currency conversion rate through API calls. It has different functions, which take the currency codes you want to convert from one currency to another and then return the current value. In this Python program, we are converting USD to INR.
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.format_currency(1500, 'USD', locale='en') # => $1,500.00
print numbers.format_currency(1500, 'GBP', locale='fr_FR') # => 1 500,00 £UK
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With