跳转到主要内容

ISO国家、地区、语言、货币和脚本定义及其翻译

项目描述

pycountry提供ISO标准数据库

639

语言

3166

国家

3166-2

国家的地区划分

4217

货币

15924

脚本

该软件包包含来自Debian的pkg-isocodes的副本,并通过Python API提供数据访问。

包含各种字符串的翻译文件。

构建状态

pycountry
https://builds.gocept.com/job/pycountry/badge/icon

国家(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 (7.4 MB 查看哈希值)

上传时间

由以下机构支持