如何将货币符号转换为代码?
How can I convert currency symbol to code?
我正在尝试将一些以英镑和美元表示的价格转换为欧元。有没有Python包可以把符号转换成代码?哪个可以代替下面的函数调用convert_sym_to_code(currency_symbol)
?
from forex_python.converter import CurrencyRates
curconv = CurrencyRates()
princess=["", "£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))
从技术上讲,您只需要从符号到代码的映射,因此 "convert_sym_to_code" 将非常简单 - 除了相当多的货币使用相同的符号(例如“$”符号被全球至少 25 种货币),因此您不能将该符号用作唯一键(当然,除非您可以接受错误的结果)。
一种天真的方法是只使用字典:
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)
如果您遇到任何未知符号,这将失败,但它可以很容易地扩展。更重要的是,如果使用 $
来指定,您的计算将是错误的。澳元.
我正在尝试将一些以英镑和美元表示的价格转换为欧元。有没有Python包可以把符号转换成代码?哪个可以代替下面的函数调用convert_sym_to_code(currency_symbol)
?
from forex_python.converter import CurrencyRates
curconv = CurrencyRates()
princess=["", "£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))
从技术上讲,您只需要从符号到代码的映射,因此 "convert_sym_to_code" 将非常简单 - 除了相当多的货币使用相同的符号(例如“$”符号被全球至少 25 种货币),因此您不能将该符号用作唯一键(当然,除非您可以接受错误的结果)。
一种天真的方法是只使用字典:
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)
如果您遇到任何未知符号,这将失败,但它可以很容易地扩展。更重要的是,如果使用 $
来指定,您的计算将是错误的。澳元.