You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python的locale模块获取国家对应货币及货币所属官方国家?

用Python实现国家与货币的双向查询

嘿,这个问题问得挺实用的!咱们来一步步拆解怎么用Python的locale模块(以及必要的补充工具)实现你要的两个功能。

一、获取指定国家对应的货币

Python的locale模块本身可以帮我们拿到对应地区的货币信息,但前提是你得知道目标国家对应的locale标识符(比如美国是en_US.UTF-8,德国是de_DE.UTF-8)。核心思路是通过locale.setlocale()切换到目标地区,再用locale.localeconv()提取货币代码和符号。

代码示例

import locale

def get_country_currency(country_locale):
    try:
        # 切换到目标locale配置
        locale.setlocale(locale.LC_ALL, country_locale)
        # 获取当前locale的格式参数
        conv = locale.localeconv()
        return {
            '官方货币代码': conv['int_curr_symbol'].strip(),  # 标准化货币代码,如USD、EUR
            '货币符号': conv['currency_symbol']             # 本地化符号,如$、€
        }
    except locale.Error:
        return f"抱歉,找不到对应的locale配置:{country_locale}"

# 测试用例
print(get_country_currency('en_US.UTF-8'))  # 输出 {'官方货币代码': 'USD', '货币符号': '$'}
print(get_country_currency('fr_FR.UTF-8'))  # 输出 {'官方货币代码': 'EUR', '货币符号': '€'}

注意事项

  • 不同操作系统的locale命名有差异:比如Windows上美国的locale是English_US,而Linux/macOS是en_US.UTF-8,如果需要跨平台兼容,要么做名称映射,要么直接用第三方库简化。
  • 如果系统未安装目标locale,会抛出locale.Error,所以一定要加异常处理。

二、已知货币代码,查询使用它的国家

很遗憾,locale模块本身没有内置“货币代码→国家”的反向映射表——它只负责处理当前locale的格式逻辑,没法直接反向查询。这时候咱们可以用pycountry这个第三方库(专门维护ISO标准的国家、货币数据)来实现。

步骤1:安装pycountry

先通过pip安装依赖:

pip install pycountry

代码示例

import pycountry

def get_countries_by_currency(currency_code):
    target_code = currency_code.upper()
    matching_countries = []
    for country in pycountry.countries:
        try:
            if country.currency_code == target_code:
                matching_countries.append(country.name)
        except AttributeError:
            # 部分小型地区可能未记录货币代码,直接跳过
            continue
    if matching_countries:
        return f"使用{target_code}作为官方货币的国家/地区:\n- " + "\n- ".join(matching_countries)
    else:
        return f"没有找到使用{target_code}作为官方货币的国家/地区"

# 测试用例
print(get_countries_by_currency('USD'))
print(get_countries_by_currency('EUR'))

补充说明

pycountry的数据直接对接ISO标准,准确性和覆盖性都很可靠,而且完全跨平台,比自己手动维护映射表省心多了。


内容的提问来源于stack exchange,提问作者hildogjr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:31:58