我试图将以英镑和美元计算的部分价格转换为欧元。有没有可以将符号转换为代码的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))
答案 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种货币因此你不能将符号用作唯一键(除非你当然可以得到错误的结果)。