在不同ISO 3166国家代码之间进行转换的便捷API。
项目描述
incf.countryutils2 ===
友好的分支者的免责声明 —
我们决定在2015年从PyPI下载此包,因为我们需要进行一些调整。我们多次尝试联系OP但没有成功。我们将接受Pull Requests。干杯,Wyldebeast & Wunderliebe。
免责声明 —
此代码完全复制自https://pypi.python.org/pypi/incf.countryutils/1.0上的源egg。代码似乎不再维护,且原作者不回复电子邮件,因此在查看许可证后,我决定将代码复制到这个github仓库并更新国家数据。
描述 —
incf.countryutils提供了一组按大陆(data_file)列出的国家列表的便捷API,如Wikipedia上所示(分发中包含副本)。
它支持不同类型的国家代码和名称之间的转换,如
>>> from incf.countryutils import transformations >>> transformations.cca2_to_ccn('de') '276' >>> transformations.ccn_to_cn(276) 'Germany'
支持的国家代码是数字(ccn;内部引用格式),两位国家代码(cca2),和三位国家代码(cca3)。此外,incf.countryutils还知道每个国家的简单英文名称(cn)以及官方英文名称。
转换名称遵循模式 <f1>_to_<f2>,其中 f1 和 f2 分别指代国家代码或名称。提供所有到和从引用格式(ccn)的转换。
当提供数字国家代码作为参数时,既接受整数形式也接受字符串形式。
此外,还有一些方便的合并转换可用。最值得注意的是这是
>>> transformations.cc_to_cn('FR') 'France' >>> transformations.cc_to_cn('FRa') 'France' >>> transformations.cc_to_cn('250') 'France' >>> transformations.cc_to_cn(250) 'France' >>> transformations.cc_to_con(250) 'French Republic France'
按名称查找仅支持简单的英语名称
>>> transformations.cn_to_ccn('Italy') '380' >>> transformations.ccn_to_con('380') 'Italian Republic Italy'
大洲 —
基于来自维基百科的数据,incf.countryutils允许查找一个国家所属的大洲(ctn:大洲名称;ctca2:两字母大洲代码)
>>> transformations.cn_to_ctn('Italy') 'Europe' >>> transformations.cca_to_ctn('us') 'North America'
大洲也有两字母代码,如下所示
>>> transformations.cca_to_ctca2('usa') 'NA'
给定一个大洲,可以获得其构成的国家
>>> transformations.ctca2_to_ccn('AN') ['010', '074', '239', '334']
替代API(OO) —
存在一个基于《Country》和《Continent》类型概念的替代、更面向对象的API。在创建时,国家或大洲需要传递一个名称或代码
>>> from incf.countryutils.datatypes import Country >>> china = Country('China') >>> china <incf.countryutils.datatypes.Country object at 0x...>
国家的名称和代码作为属性可用
>>> china.name 'China' >>> china.official_name "People's Republic of China" >>> china.numeric '156' >>> china.alpha2 'CN' >>> china.alpha3 'CHN'
并且《continent》属性引用相应的《Continent》实例
>>> china.continent <incf.countryutils.datatypes.Continent object at 0x...>
该实例反过来具有以下属性
>>> china.continent.name 'Asia' >>> china.continent.alpha2 'AS'
询问一个大洲的构成国家将返回一个生成器对象,该对象依次返回国家实例
>>> type(china.continent.countries) <class 'generator'> >>> next(china.continent.countries) <incf.countryutils.datatypes.Country object at 0x...> >>> [c.name for c in china.continent.countries] ['Afghanistan', 'Azerbaijan', 'Bahrain', 'Bangladesh', 'Armenia', 'Bhutan', 'Brunei', 'Myanmar', 'Cambodia', 'Sri Lanka', 'China', 'Taiwan', 'Christmas Island', 'Cocos (Keeling) Islands', 'Cyprus', 'Georgia', 'Hong Kong', 'India', 'Indonesia', 'Iran', 'Iraq', 'Israel', 'Japan', 'Kazakhstan', 'Jordan', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic', "Lao People's Democratic Republic", 'Lebanon', 'Macao', 'Malaysia', 'Maldives', 'Mongolia', 'Oman', 'Nepal', 'Pakistan', 'Palestine', 'Philippines', 'Timor-Leste', 'Qatar', 'Russian Federation', 'Saudi Arabia', 'Singapore', 'Vietnam', 'Syrian Arab Republic', 'Tajikistan', 'Thailand', 'United Arab Emirates', 'Turkey', 'Turkmenistan', 'Egypt', 'Uzbekistan', 'Yemen', 'Disputed Territory', 'Disputed Territory']
相关包 —
推动此包开发的用例是希望能够通过一个国家(国家可以用任何ISO 3166兼容的方式来指定)来获取大洲。
还有一个pycountry,它还处理地区子划分、货币和语言。它也可能获得此处提供的功能,但请注意pycountry需要lxml,这在某些平台上可能并不容易获得。
最后,对于那些想要通过IP地址查找国家的人来说,有ip2cc。
变更日志
1.2 - (2021-06-23)
添加了一些额外的国家
修复测试
修复小错误
在pypi上以incf.countryutils2发布
1.1 - (2016-01-07)
从wikipedia更新数据(huubbouma)
1.0 - (2009-04-20)
初始发布
项目详情
incf.countryutils2-1.2.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6d36d4559d7416864d0146cdc434c3feec3a15215c68f795f41a5403b145a5fd |
|
MD5 | d12f71a5d189797248f716b42dcce951 |
|
BLAKE2b-256 | 61da64d4c252893201192efa1a96723ddcb82036d5c5ce76be3d8324d16398eb |