我有一个Python网络服务器(mod_python,如果这有什么不同),我想开始格式化一些货币。我格式化货币时有两条信息 - 值(作为数字)和货币(作为三字母ISO 4217 code)。我还可以检索格式化货币的国家(甚至是城市)。我可以预期格式化多种货币 - 美元,加元,日元,英镑,欧元等。每个请求可能会有所不同货币。
我知道the locale module,但它没有做我想要的。该模块似乎是基于计算机的语言环境,因此它不能很好地格式化任何给定的货币。
有没有办法在Python中执行此操作?或者有没有人知道一个可以解决这个问题的好图书馆?
答案 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所描述的那样 “企业应用模式 体系结构”。