解析ISO4217中的货币(符号和代码)。

iso4217parse的Python项目详细描述


CircleCICoverage StatusTested CPython VersionsTested PyPy VersionsPyPi versionPyPi license

ISO4217货币分析器

解析货币(符号和代码)从ISO4217ISO4217

类似于iso4217包,但是

  • 通过抓取wikipedia获得数据(请参见below)-这是可重复的,您可以使用最新的数据
  • 货币符号是手工生成的-这允许一些模糊的货币匹配
  • 安装过程中无下载和分析
  • 无外部依赖性(enum34

当您想reuse项目的data.json文件时,请留下属性说明。我根据(抄送4.0)许可文件。

安装:

pip install iso4217parse

文档

每种货币都被建模为collections.namedtuple

Currency=namedtuple('Currency',['alpha3',# unicode:       the ISO4217 alpha3 code'code_num',# int:           the ISO4217 numeric code'name',# unicode:       the currency name'symbols',# List[unicode]: list of possible symbols;#                first is opinionated choice for representation'minor',# int:           number of decimal digits to round'countries',# List[unicode]: list of countries that use this currency.])

parse:尝试使用by_alpha3()by_code_num(),…,以最佳方式解析输入。功能:

In[1]:importiso4217parseIn[2]:iso4217parse.parse('CHF')Out[2]:[Currency(alpha3='CHF',code_num=756,name='Swiss franc',symbols=['SFr.','fr','Fr.','F','franc','francs','Franc','Francs'],minor=2,countries=['CH','LI'])]In[3]:iso4217parse.parse(192)Out[3]:[Currency(alpha3='CUP',code_num=192,name='Cuban peso',symbols=['₱','$','﹩','$','dollar','dollars','Dollar','Dollars','$MN','﹩MN','$MN'],minor=2,countries=['CU'])]In[4]:iso4217parse.parse('Price is 5 €')Out[4]:[Currency(alpha3='EUR',code_num=978,name='Euro',symbols=['€','euro','euros'],minor=2,countries=['AD','AT','AX','BE','BL','CY','DE','EE','ES','FI','FR','GF','GP','GR','IE','IT','LT','LU','LV','MC','ME','MF','MQ','MT','NL','PM','PT','RE','SI','SK','SM','TF','VA','XK','YT'])]In[5]:iso4217parse.parse('CA﹩15.76')Out[5]:[Currency(alpha3='CAD',code_num=124,name='Canadian dollar',symbols=['CA$','CA$','$','$','dollar','dollars','Dollar','Dollars','CA﹩','﹩'],minor=2,countries=['CA'])]In[6]:iso4217parse.parse?Signature:iso4217parse.parse(v,country_code=None)Docstring:Tryparse`v`tocurrencies;filterbycountry_codeIf`v`isanumber,try`by_code_num()`;otherwisetry:1)if`v`is3characteruppercase:`by_alpha3()`2)Exactsymbolmatch:`by_symbol()`3)Exactcountrycodematch:`by_country()`4)Fuzzybysymbolmatchheuristic:`by_symbol_match()`Parameters:v:Union[unicode,int]Eitheraiso4217numericcodeorsomestringcountry_code:Optional[unicode]Iso3166alpha2countrycode.Returns:List[Currency]:foundCurrencyobjects.

by_alpha3:按其ISO4217 alpha3代码获取货币:

In[1]:importiso4217parseIn[2]:iso4217parse.by_alpha3('CHF')Out[2]:Currency(alpha3='CHF',code_num=756,name='Swiss franc',symbols=['SFr.','fr','Fr.','F','franc','francs','Franc','Francs'],minor=2,countries=['CH','LI'])In[3]:iso4217parse.by_alpha3?Signature:iso4217parse.by_alpha3(code)Docstring:GetCurrencyforISO4217alpha3codeParameters:code:unicodeAnalpha3iso4217code.Returns:Currency:Currencyobjectfor`code`,ifavailable.

by_code_num:按其ISO4217数字代码获取货币:

In[1]:importiso4217parseIn[2]:iso4217parse.by_code_num(51)Out[2]:Currency(alpha3='AMD',code_num=51,name='Armenian dram',symbols=['֏','դր','dram'],minor=2,countries=['AM'])In[3]:iso4217parse.by_code_num?Signature:iso4217parse.by_code_num(code_num)Docstring:GetCurrencyforISO4217numericcodeParameters:code_num:intAniso4217numericcode.Returns:Currency:Currencyobjectfor`code_num`,ifavailable.

按国家:获取国家使用的货币:

In[1]:importiso4217parseIn[2]:iso4217parse.country('HK')Out[2]:[Currency(alpha3='HKD',code_num=344,name='Hong Kong dollar',symbols=['HK$','HK$','$','$','dollar','dollars','Dollar','Dollars','HK﹩','﹩','元'],minor=2,countries=['HK']),Currency(alpha3='CNH',code_num=None,name='Chinese yuan (when traded offshore)',symbols=['CN¥','¥','CN¥','¥','RMB','元'],minor=2,countries=['HK'])]In[3]:iso4217parse.country?Signature:iso4217parse.by_country(country_code)Docstring:GetallcurrenciesusedincountryParameters:country_code:unicodeiso3166alpha2countrycodeReturns:List[Currency]:Currencyobjectsusedincountry.

按符号:获取使用给定符号的货币:

In[1]:importiso4217parseIn[2]:iso4217parse.by_symbol('$MN')Out[2]:[Currency(alpha3='CUP',code_num=192,name='Cuban peso',symbols=['₱','$','﹩','$','dollar','dollars','Dollar','Dollars','$MN','﹩MN','$MN'],minor=2,countries=['CU'])]In[3]:iso4217parse.by_symbol('$')Out[3]:[...]# 35 different currenciesIn[4]:[c.alpha3forciniso4217parse.by_symbol('$')]Out[4]:['ARS','AUD','BBD','BMD','BZD','SBD','BND','CAD','CVE','KYD','CLP','COP','CUP','DOP','FJD','GYD','HKD','JMD','LRD','MXN','NAD','NZD','SGD','TTD','USD','UYU','TWD','CUC','ZWL','XCD','SRD','BRL','KID','NTD','TVD']In[5]:iso4217parse.by_symbol('$',country_code='US')Out[5]:[Currency(alpha3='USD',code_num=840,name='United States dollar',symbols=['US$','$','$','﹩','dollar','dollars','Dollar','Dollars','US$','US﹩'],minor=2,countries=['AS','EC','GU','HT','MH','MP','PR','PW','SV','TC','TL','UM','US'])]In[6]:iso4217parse.by_symbol?Signature:iso4217parse.by_symbol(symbol,country_code=None)Docstring:Getlistofpossiblecurrenciesforsymbol;filterbycountry_codeLookforallcurrenciesthatusethe`symbol`.Iftherearecurrenciesusedinthecountryof`country_code`,returnonlythose;otherwisereturnallfoundcurrencies.Parameters:symbol:unicodeCurrencysymbol.country_code:Optional[unicode]Iso3166alpha2countrycode.Returns:List[Currency]:Currencyobjectsfor`symbol`;filterbycountry_code.

按符号匹配:在输入字符串中查找货币符号:

In[1]:importiso4217parseIn[2]:iso4217parse.by_symbol_match('RD$35.8')Out[2]:[Currency(alpha3='DOP',code_num=214,name='Dominican peso',symbols=['RD$','$','﹩','$','dollar','dollars','Dollar','Dollars','RD$','RD﹩'],minor=2,countries=['DO'])]In[3]:iso4217parse.by_symbol_match('The price is ₨ 35.8 !')Out[3]:[Currency(alpha3='LKR',code_num=144,name='Sri Lankan rupee',symbols=['රු','₨','Rs','ரூ','SLRs','rupees','rupee'],minor=2,countries=['LK']),Currency(alpha3='MUR',code_num=480,name='Mauritian rupee',symbols=['₨','rupees','rupee'],minor=2,countries=['MU']),Currency(alpha3='NPR',code_num=524,name='Nepalese rupee',symbols=['रु','₨','Rs','Re','rupees','rupee'],minor=2,countries=['NP']),Currency(alpha3='PKR',code_num=586,name='Pakistani rupee',symbols=['₨','Rs','rupees','rupee'],minor=2,countries=['PK'])]In[4]:iso4217parse.by_symbol_match('The price is ₨ 35.8 !',country_code='NP')Out[4]:[Currency(alpha3='NPR',code_num=524,name='Nepalese rupee',symbols=['रु','₨','Rs','Re','rupees','rupee'],minor=2,countries=['NP'])]In[5]:iso4217parse.by_symbol_match?Signature:iso4217parse.by_symbol_match(value,country_code=None)Docstring:Getlistofpossiblecurrencieswherethesymbolisinvalue;filterbycountry_code(iso3166alpha2code)Lookforfirstmatchingcurrencysymbolin`value`.Filtersimilarto`by_symbol`.Symbolsaresortedbylengthandrelevanceoffirstcharacter(see`_symbols()`).Note:Thisisa[heuristic](https://en.wikipedia.org/wiki/Heuristic)!Parameters:value:unicodeSomeinputstring.country_code:Optional[unicode]Iso3166alpha2countrycode.Returns:List[Currency]:Currencyobjectsfoundin`value`;filterbycountry_code.

数据获取

基本的ISO4217货币信息来自维基百科:https://en.wikipedia.org/wiki/ISO_4217。这些表用gen_data.py解析并存储在iso4217parse/data.json中。这提供了alpha3code_numnameminorcountries的信息。货币符号信息手动收集自:

并存储在iso4217parse/symbols.json中。每个货币可以有多个货币符号-列表中的第一个符号是(自以为是的)选项 为了货币。

贡献说明:此处可能的贡献方式:

  • 货币代码的手检符号。
  • 自动生成iso4217parse/symbols.json文件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
pdf生成如何使用java从pdf文档中读取或提取图形组件,如正方形、矩形、直线等?   swing使用Java文件选择器导入文件   java MySQL插入未执行的行   如何在java中遍历字符串而不使用任何内置方法?   在java中初始化字节[]   如何在Java中以非阻塞方式列出目录中的文件?   从HBase读取时发生java空指针异常   java作为媒体/闹钟/铃声播放声音?   java获取内角   java将密钥对导入现有密钥对文件   如何在java应用程序中从facebook应用程序中提取源代码   java为什么我的随机生成器只生成0?   java总是通过上下文在Spring服务中注入一些字段   java查找点扩展前最后一个下划线后的字符串   java Spring boot@Async注释引发LazyInitializationException异常   java LinkedHashMap中“accessOrder”字段的用途是什么?   java计时器总是在时间的前面跳跃   java RXJava持久化上一个flatMap的返回值   java Liferay注销返回400响应   测试在关闭时隐藏Java窗口后重新打开它