如何将货币符号转换为代码?

时间:2016-06-22 08:51:56

标签: python currency

我试图将以英镑和美元计算的部分价格转换为欧元。有没有可以将符号转换为代码的Python包?哪个可以替换以下函数调用convert_sym_to_code(currency_symbol)

from forex_python.converter import CurrencyRates
curconv = CurrencyRates()
princess=["$12", "£23"]

for price in princess:
   m = re.search("\d", price)
   currency_symbol = price[0:m.start()]
   tmp = price[m.start():]

   currency_code = convert_sym_to_code(currency_symbol)
   print curconv.convert(currency_code, 'EUR', float(tmp))

2 个答案:

答案 0 :(得分:3)

一种天真的方法就是使用字典:

CURRENCY_MAPPING = [
    '$': 'USD',
    '£': 'GBP',
]

def convert_sym_to_code(currency_symbol):
    try:
        CURRENCY_MAPPING[currency_symbol.strip()]
    except KeyError:
        raise ValueError('Unknown symbol "%s" % currency_symbol)

如果您遇到任何未知符号,这将失败,但可以轻松扩展。更重要的是,如果使用$来指定例如,则计算错误澳元。

答案 1 :(得分:1)

从技术上讲,您只需要从符号到代码的映射,因此“convert_sym_to_code”将非常简单 - 除了相当多的货币使用相同的符号(例如,“$”符号至少使用25种货币因此你不能将符号用作唯一键(除非你当然可以得到错误的结果)。