我从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)
一个解决方法是将此区域设置添加到我的计算机中。还有更好的方法吗?
$123,456,789.00
我不确定如何处理或者是否能够处理。请参考 http://babel.pocoo.org/en/latest/numbers.html#parsing-numbers。 - Padraic Cunningham