Python - Convert currency code to its sign

陌路散爱 提交于 2019-12-18 11:47:34

问题


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.


回答1:


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).




回答2:


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



回答3:


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'



回答4:


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.




回答5:


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



来源:https://stackoverflow.com/questions/4483158/python-convert-currency-code-to-its-sign

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!