10

クレジット カード プロバイダーは、セントまたは通貨の利用可能な最小単位での取引金額を必要とします。コードを移植可能にしたいので、特定の通貨の最小単位を取得する必要があり、それがメインユニットの要素です。locale モジュールから取得しようとしましたが、うまくいきませんでした。

http://docs.python.org/library/locale.html

ISO 4217で説明されている通貨コードを持っています

ユーロのユーロ

次に、1 ユーロは 100 ユーロセントが必要です (1/100 の情報のみ、テキストは必要ありません)

ウィキペディアによると、古い英ポンドのように 2 単位以上の通貨がある

4

6 に答える 6

5

または、次の単純なマッピング モジュールを使用することもできます: http://pastebin.com/K7kVXi8P

このペーストビンをプロジェクト内のモジュール (例: simple_currency_helper.py) に保存し、マップ (またはヘルパー メソッドget_currency_subunit) を使用して、特定の ISO コードの通貨サブユニットを取得します。

>>> from simple_currency_helper import get_currency_subunit
>>> print get_currency_subunit('TND')
1000
于 2012-09-04T15:55:00.950 に答える
1

Python の locale モジュールはそれらの情報を提供できますが、使用しているロケールの通貨についてのみであり、残念ながら複数の通貨には対応していません。

locale.localconv()は、現在のロケールの情報を提供できます (桁数は'int_frac_digits'メンバーです)。たとえば、en_US でローカライズされている場合は、次のようにできます。

locale.setlocale(locale.LC_MONETARY, "en_US")  # set the en_US locale
locale.localeconv()['int_frac_digits']
>>> 2
locale.localeconv()['int_curr_symbol']
>>> 'USD '

しかし、他の人が言ったように、すべての通貨を処理する必要がある場合は、自分でテーブルを作成/維持する必要があります。

于 2012-09-04T15:09:28.950 に答える
1

私の知る限り、その情報を提供する既存のモジュールはありません。ただし、必要なデータはすべてここにリストされているようです: http://en.wikipedia.org/wiki/List_of_circulating_currencies

おそらく独自のリストを維持する必要があるでしょう (ウィキペディアのページを最初のソースとして使用します)。その場合、独自のマッピングを行うのはかなり簡単です。

手始めに、ここに簡単なハックがあります。そのウィキペディアのページで、ブラウザーの Javascript コンソールに次のスクリプトを貼り付けて実行すると、コンテンツが解析され、Python 対応バージョンのデータがページに追加されます。

var out = "data = {\n";
$("table.wikitable").find("tr").each(function(idx) {
    if (idx == 0) return;  // Skip first line.
    var last3 = $(this).find("td").slice(-3);
    var code = $(last3[0]).text();
    if (code != "None") {
        var scale = $(last3[2]).text().replace(",","");
        if (scale != "None") {
            var minor_name = $(last3[1]).text().split("[")[0];
            out += '  "' + code + '": ("' + minor_name + '", ' + scale + '),' + "\n";
        }
    }
});
out += "}";

$("<pre>").text(out).appendTo($("body"));

出力例を次に示します (Firebug を使用して実行されるスクリプト)。

出力は次のとおりです: https://gist.github.com/16d43be2652a06cf962d

于 2012-09-04T15:04:24.567 に答える
0

Python用に存在するかどうかはわかりません。以前はこのxmlを使用していました。

<item code="USD" symbol="$" sort="20" iso="840">
<name lang="en">
  <singular>
    <nominative>US dollar</nominative>
    <genitive>US dollar</genitive>
    <dative>US dollar</dative>
    <full>US dollar</full>
    <prepos>US dollar</prepos>
  </singular>
  <plural>
    <nominative>US dollars</nominative>
    <genitive>US dollars</genitive>
    <dative>US dollars</dative>
    <full>US dollars</full>
    <prepos>US dollars</prepos>
  </plural>
</name>
<frac lang="en">100 cents</frac>
<bank href="http://www.federalreserve.gov/">
  <name lang="en">
    <nominative>The U.S. Federal Reserve System</nominative>
    <genitive>The U.S. Federal Reserve System</genitive>
  </name>
</bank>
<synonim lang="en">
  <item>buck</item>
  <item>green buck</item>
</synonim>
<banknotes/>
</item>
于 2012-09-04T14:56:14.783 に答える