ISO国家、地区、语言、货币和脚本定义及其翻译
项目描述
pycountry提供ISO标准数据库
- 639
语言
- 3166
国家
- 3166-2
国家的地区划分
- 4217
货币
- 15924
脚本
该软件包包含来自Debian的pkg-isocodes的副本,并通过Python API提供数据访问。
包含各种字符串的翻译文件。
构建状态
国家(ISO 3166)
国家可以通过在导入pycountry时已配置的数据库对象访问
>>> import pycountry >>> len(pycountry.countries) 249 >>> list(pycountry.countries)[0] <pycountry.db.Country object at 0x...>
可以通过各种代码查找特定国家,并作为属性提供标准中包含的信息
>>> germany = pycountry.countries.get(alpha2='DE') >>> germany <pycountry.db.Country object at 0x...> >>> germany.alpha2 u'DE' >>> germany.alpha3 u'DEU' >>> germany.numeric u'276' >>> germany.name u'Germany' >>> germany.official_name u'Federal Republic of Germany'
注意,ISO 3166-3子标准定义的历史国家不包括在这个列表中。
国家地区划分(ISO 3166-2)
国家地区划分比国家本身更复杂,因为它们提供了一个嵌套和类型化的结构。
可以直接访问所有地区划分
>>> len(pycountry.subdivisions) 4847 >>> list(pycountry.subdivisions)[0] <pycountry.db.Subdivision object at 0x...>
可以使用唯一代码访问地区划分,并至少提供其代码、名称和类型
>>> de_st= pycountry.subdivisions.get(code='DE-ST') >>> de_st.code u'DE-ST' >>> de_st.name u'Sachsen-Anhalt' >>> de_st.type u'State' >>> de_st.country <pycountry.db.Country object at 0x...>
一些地区划分指定另一个地区划分为父级
>>> al_br = pycountry.subdivisions.get(code='AL-BU') >>> al_br.code u'AL-BU' >>> al_br.name u'Bulqiz\xeb' >>> al_br.type u'District' >>> al_br.parent_code u'AL-09' >>> al_br.parent <pycountry.db.Subdivision object at 0x...> >>> al_br.parent.name u'Dib\xebr'
可以使用country_code索引查询单一国家的地区划分
>>> len(pycountry.subdivisions.get(country_code='DE')) 16>>> len(pycountry.subdivisions.get(country_code='US')) 57
脚本(ISO 15924)
脚本可以从与国家类似的数据库中获取
>>> len(pycountry.scripts) 163 >>> list(pycountry.scripts)[0] <pycountry.db.Script object at 0x...>>>> latin = pycountry.scripts.get(name='Latin') >>> latin <pycountry.db.Script object at 0x...> >>> latin.alpha4 u'Latn' >>> latin.name u'Latin' >>> latin.numeric u'215'
货币(ISO 4217)
货币数据库与之前类似
>>> len(pycountry.currencies) 182 >>> list(pycountry.currencies)[0] <pycountry.db.Currency object at 0x...>>>> argentine_peso = pycountry.currencies.get(letter='ARS') >>> argentine_peso <pycountry.db.Currency object at 0x...> >>> argentine_peso.letter u'ARS' >>> argentine_peso.name u'Argentine Peso' >>> argentine_peso.numeric u'032'
语言(ISO 639)
语言数据库也类似
>>> len(pycountry.languages) 487 >>> list(pycountry.languages)[0] <pycountry.db.Language object at 0x...>>>> aragonese = pycountry.languages.get(alpha2='an') >>> aragonese.alpha2 u'an' >>> aragonese.bibliographic u'arg' >>> aragonese.terminology u'arg' >>> aragonese.name u'Aragonese'>>> bengali = pycountry.languages.get(alpha2='bn') >>> bengali.name u'Bengali' >>> bengali.common_name u'Bangla'
区域设置
区域设置位于该软件包的pycountry.LOCALES_DIR子目录中。翻译域根据它们提供的翻译标准命名为isoXXX。目录结构与Python的gettext模块兼容。
这里是一个翻译语言名称的示例
>>> import gettext >>> german = gettext.translation('iso3166', pycountry.LOCALES_DIR, ... languages=['de']) >>> german.install() >>> _('Germany') 'Deutschland'
变更
0.16(未发布)
尚未有任何变更。
0.15 (2013-06-22)
更新到iso-codes 3.43。
将测试切换到pytest。
使Python 3兼容。
0.14.8 (2013-02-25)
更新到iso-codes 3.41。
0.14.7 (2012-11-03)
更新到iso-codes 3.40。
将语言对象适配以包含在iso-codes 3.40中添加的common_name属性。
0.14.6 (2012-10-02)
更新到iso-codes 3.39。
0.14.5 (2012-09-14)
重新添加应该为0.14.4的补丁。由于迁移到mercurial,我错过了它。
0.14.4 (2012-09-14)
显式解除DOM树以支持(更快)的内存释放。感谢Romuald Brunet。
0.14.3 (2012-09-04)
更新数据到iso-codes 3.38。
0.14.2 (2012-07-18)
更新数据到iso-codes 3.37。
0.14.1 (2011-07-15)
尚未有任何变更。
0.14 (2011-07-06)
更新数据到iso-codes 3.26。
0.13 (2010-04-23)
应用Pedro Araujo提供的补丁,该补丁删除了对lxml的某些冗余依赖,并将其切换到内置的minidom。这似乎会始终将所有字符串转换为unicode,即使它们只包含ASCII字符。
0.12.1 (2010-04-21)
解决0.12版本的问题,该版本由于数据构建系统与zest.releaeser的完整发布脚本的错误交互而缺少所有数据文件。
0.12 (2010-04-20)
遵循Debian存储库到git。
根据#5488和其他人的要求升级数据到修订版770fa9cd603f90f9fb982b32fe6f45d253f1d33e。
通过XML中它们如何引用其父级来反映子划分的变化(它们过去使用空格作为分隔符,但现在使用连字符)。
稍微重构索引构建结构。
从子划分数据库中删除冗余的“code”索引。(与数据升级一起,这也消除了#6667中描述的所有烦人的警告)。
进行一些轻微的PEP 8改进。
0.11 (2009-03-03)
将Debian存储库更新到r1752。
0.10 (2008-06-26)
添加对国家子划分(ISO 3166-2)的支持。
0.9
初始发布
项目详情
pycountry-nopytest-0.16.dev0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9b59e643aec19bdc0309f0b66d632bd83906e6e93c1b17df81f48f833e89e6b7 |
|
MD5 | 32cc5c5b9e860ad32380e84f61774b58 |
|
BLAKE2b-256 | 702fdb9e55db9ba3a4b28cb34b970567164252927da183e2d823e742dd65b8c7 |