8

私はdjango_countries国のリストを表示するために使用しています。現在、国に応じて通貨を表示する必要があるという要件があります。ノルウェー - NOK、ヨーロッパ & アフリカ (英国を除く) - EUR、英国 - GBP、南北アメリカ & アジア - 米ドル。

これは django_countries プロジェクトを通じて達成できますか? または、これに使用できるpythonまたはdjangoの他のパッケージはありますか?

他のソリューションも同様に歓迎されます。

--------------------------- 更新 ------------- 主な強調点は、たくさん取得した後のことですソリューションの数: Norway - NOK, Europe & Afrika (besides UK) - EUR, UK - GBP, AMERICAS & ASIA - USDs.

- - - - - - - - - - - - - - 解決 - - - - - - - - - - - -----------

私の解決策は非常に単純で、必要なものを取得するための ISO 形式またはパッケージを取得できないことに気付いたとき、独自のスクリプトを作成することを考えました。これは単なる条件ベースのロジックです。

from incf.countryutils import transformations
def getCurrencyCode(self, countryCode):
        continent = transformations.cca_to_ctn(countryCode)
        # print continent
        if str(countryCode) == 'NO':
            return 'NOK'

        if str(countryCode) == 'GB':
            return 'GBP'

        if (continent == 'Europe') or (continent == 'Africa'):
            return 'EUR'

        return 'USD'

これが効率的な方法かどうかわからないので、いくつかの提案を聞きたいです。

みんな、ありがとう!

4

3 に答える 3

15

そこにはいくつかのモジュールがあります:

  • パイカントリー:

    import pycountry
    
    country = pycountry.countries.get(name='Norway')
    currency = pycountry.currencies.get(numeric=country.numeric)
    
    print currency.alpha_3
    print currency.name
    

    プリント:

    NOK 
    Norwegian Krone
    
  • お金持ち

    import moneyed
    
    country_name = 'France'
    
    for currency, data in moneyed.CURRENCIES.iteritems():
        if country_name.upper() in data.countries:
            print currency
            break
    

    版画EUR

  • python-お金

    import money
    
    country_name = 'France'
    
    for currency, data in money.CURRENCY.iteritems():
        if country_name.upper() in data.countries:
            print currency
            break
    

    版画EUR

pycountryは定期的に更新され、見栄えpy-moneyedがよく、より多くの機能を備えています。また、現在はメンテナンスされていません。python-moneypython-money

それが役立つことを願っています。

于 2013-07-31T09:56:32.283 に答える