【发布时间】:2016-10-01 11:22:19
【问题描述】:
我向Currency formatting in Python 学习,使用locale 模块将数字格式化为货币。例如,
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import locale
value = 123456789
l = locale.setlocale(locale.LC_ALL, '') # LC_CTYPE=en_US.UTF-8;LC_NUMERIC=fr_FR.UTF-8;LC_TIME=fr_FR.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=fr_FR.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=fr_FR.UTF-8;LC_NAME=fr_FR.UTF-8;LC_ADDRESS=fr_FR.UTF-8;LC_TELEPHONE=fr_FR.UTF-8;LC_MEASUREMENT=fr_FR.UTF-8;LC_IDENTIFICATION=fr_FR.UTF-8
s = locale.currency(value, grouping=True) # 123 456 789,00 €
locale.setlocale(locale.LC_ALL, 'en_US.utf-8')
s = locale.currency(value, grouping=True) # $123,456,789.00
locale.setlocale(locale.LC_ALL, 'en_US') # WHY? locale.Error: unsupported locale setting
s = locale.currency(value, grouping=True)
我想将数字格式化为其他货币,例如de_DE。我遇到了locale.Error: unsupported locale setting 的问题,因为语言环境de_DE 不在locale -a 的列表中。
locale.setlocale(locale.LC_ALL, 'de_DE') # locale.Error: unsupported locale setting
s = locale.currency(value, grouping=True)
一种解决方案是将此语言环境添加到我的机器上。有没有更好的办法?
【问题讨论】:
标签: python locale currency-formatting