我有一个Python函数,该函数接受alpha2国家/地区代码和价格字符串,其目的是获取该国家/地区的货币并使用该货币的currency.letter属性通过字符串插值来格式化提供的价格字符串.
到目前为止,以上方法都可以正常工作-但在以以下国家(德国)的身份调用时,它却落空了:
>>> import pycountry
>>> country = pycountry.countries.get(alpha2='DE')
>>> currency = pycountry.currencies.get(numeric=country.numeric)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "/usr/lib/pymodules/python2.6/pycountry/db.py", line 83, in get
return self.indices[field][value]
KeyError: '276'
>>>
pycountry.countries集合不包含数字为276(德国的数字)的货币-但确实包含欧元.关于如何解决的任何想法?
解决方法:
不幸的是,国家/地区数字代码与货币数字不同.根据ISO,“ Where possible the 3 digit numeric code is the same as the numeric country code”-但这显然对于欧元来说是不可能的,欧元由多个国家/地区共享.
欧元的数字是978,而不是276;显然pycountry没有提供国家/地区数字和货币数字之间的映射.这是原始表(XML或XLS格式)的链接,因此您可以根据需要滚动自己的表…
http://www.currency-iso.org/en/home/tables/table-a1.html
标签:currency-formatting,python 来源: https://codeday.me/bug/20191029/1961128.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。