有没有办法在Python上格式化各种货币?

时间:2010-08-10 22:45:47

标签: python formatting currency

我有一个Python网络服务器(mod_python,如果这有什么不同),我想开始格式化一些货币。我格式化货币时有两条信息 - 值(作为数字)和货币(作为三字母ISO 4217 code)。我还可以检索格式化货币的国家(甚至是城市)。我可以预期格式化多种货币 - 美元,加元,日元,英镑,欧元等。每个请求可能会有所不同货币。

我知道the locale module,但它没有做我想要的。该模块似乎是基于计算机的语言环境,因此它不能很好地格式化任何给定的货币。

有没有办法在Python中执行此操作?或者有没有人知道一个可以解决这个问题的好图书馆?

2 个答案:

答案 0 :(得分:2)

对于我的国际化需求,我几乎总是转向ICU,这是一个真正令人敬畏的广度和深度包 - 通常是通过pyIcu,尽管在过去我不得不做一些包装当pyIcu尚未包装我需要的ICU的某个角落时我自己(我不确定他们是否正在包装你需要的所有货币格式化操作)。

PyIcu的文档是here,可以在“ICU自己的文档here之上阅读” - 换句话说,PyIcu特定的文档本质上是一个“短语和词典”如何将ICU自己的,以C ++为重点的文档“翻译”为PyIcu(以及以Python为重点的文档;-)的文档。是的,我知道,并不理想 - 不是唯一一个包含不完美文档的开源软件包我想(我,我认为这是一个有进取心的灵魂写一个“PyIcu,缺少手册”等等的机会; - )。

答案 1 :(得分:1)

我确信你可以使用正则表达式或小数格式,但这个模块看起来很有希望:

http://code.google.com/p/python-money/

  

Python-money谨慎提供   为...设计了基本的Python原语   与货币和货币合作。

     

该模块的主要目标   是为了帮助发展   财务申请增加   可测试性和可重用性,减少   代码重复并降低风险   代码中出现的缺陷。

     

该模块定义了两个基本的Python   类 - 货币类和   钱类。它还预先定义了所有   据世界各国的货币说   ISO 4217标准。课程   定义一些基本操作   与钱一起工作,压倒一切   Python的补充,减法,   乘法等等   与钱合作的帐户   不同的货币。他们也定义   货币感知比较运算符。   避免浮点精度   货币计算中的错误,   模块使用Python的Decimal类型   独占。

     

模块的设计基于   货币企业设计模式,   正如Martin Fowler所描述的那样   “企业应用模式   体系结构”。