2016-06-22 3 views
-1

私はポンドとUSDで与えられた価格をユーロに変換しようとしています。シンボルをコードに変換できる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

* what * "code"に変換しますか? –

+0

通貨コード(EUR、USD、GBPなど)。 –

答えて

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

技術的には、あなただけのコードへのシンボルのマッピングが必要なので、「convert_sym_to_codeは」非常に些細なことだろう - それはかなりの数の通貨が(同じ記号を使用する以外、たとえば、「$」記号がで使用されています全世界で少なくとも25通貨)、シンボルをユニークなキーとして使用することはできません(間違った結果を出すのが大丈夫でない限り)。

関連する問題