Python - 将货币代码转换为其符号

Alo*_*kin 17 python currency

在Python中,如何将货币代码转换为其符号?

例如,USD将转换为$,并将JPY转换为¥.

如果没有通用的方法来做到这一点,那么Web上是否有这些简单的字典?

谢谢.

unu*_*tbu 15

使用语言环境模块:

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']))
Run Code Online (Sandbox Code Playgroud)

收益率:

AUD  ==> $
BWP  ==> Pu
CAD  ==> $
DKK  ==> kr
GBP  ==> £
HKD  ==> HK$
EUR  ==> €
INR  ==> ?
NGN  ==> ?
PHP  ==> Php
USD  ==> $
ZAR  ==> R
ZWD  ==> Z$
JPY  ==> ?
Run Code Online (Sandbox Code Playgroud)

请注意,您需要在计算机上安装区域设置信息.在Ubuntu上,这意味着安装了正确的language-pack-*软件包.

在*nix系统上,您可以找到已知语言环境(例如en_GB.utf8)的列表

locale -a
Run Code Online (Sandbox Code Playgroud)

我不知道从Python中获取此列表的方法(不使用subprocess).

  • 这不会进行任何转换,只是打印出一组固定的语言环境的映射. (2认同)

bri*_*sou 12

巴贝尔怎么样?

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
Run Code Online (Sandbox Code Playgroud)

  • 这会将数字格式化为货币。要将货币代码转换为符号,您可以使用 babel 的 get_currency_symbol 函数。 (3认同)

Rav*_*mar 7

Forex-python包将货币代码转换为其符号。

>>> from forex_python.converter import CurrencyCodes
>>> c = CurrencyCodes()
>>> print c.get_symbol('GBP')
£
Run Code Online (Sandbox Code Playgroud)

您可以将金额从一种货币转换为另一种货币。

>>> c= CurrencyRates()
>>> c.convert('USD', 'INR', 10)
674.73
Run Code Online (Sandbox Code Playgroud)

试一试