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

pycountr的Python项目详细描述


pycountry

pycountry提供标准的iso数据库:

< DL>
639-3
语言
3166
国家
3166-3
删除的国家
3166-2
国家细分
4217
货币
15924
脚本

该软件包包括一份来自Debian的 pkg isocode 的副本,并制作数据 可通过python api访问。

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

数据更新策略

PYCOUNTRY不接受对数据的任何更改。这是纯包装纸 使用debian as 数据库中的 pkg isocode 围绕iso标准。 如果你需要改变世界政治局势,请与 ISO或Debian的人,而不是我。

捐款/货币支持

这是我在私人时间里做的一个小项目。我不是 对个人经济利益感兴趣。但是,如果你想支持 如果你愿意捐赠给女性主义频率,我将非常乐意。同时,让全世界都知道你 这样做是为了让其他人能够跟随您的道路。

国家(ISO 3166)

可以通过已配置的数据库对象访问国家/地区 进口PYCOUNTRY并作为ITERABLE工作时:

>>> importpycountry>>> len(pycountry.countries)249
>>> list(pycountry.countries)[0]Country(alpha_2='AF', alpha_3='AFG', name='Afghanistan', numeric='004', official_name='Islamic Republic of Afghanistan')

特定的国家可以通过它们的各种代码进行查询,并提供 作为属性包含在标准中的信息:

>>> germany=pycountry.countries.get(alpha_2='DE')>>> germanyCountry(alpha_2='DE', alpha_3='DEU', name='Germany', numeric='276', official_name='Federal Republic of Germany')
>>> germany.alpha_2'DE'
>>> germany.alpha_3'DEU'
>>> germany.numeric'276'
>>> germany.name'Germany'
>>> germany.official_name'Federal Republic of Germany'

历史国家数据库包含 从标准中删除,现在包括在ISO 3166-3中,不包括 现有的:

>>> ussr=pycountry.historic_countries.get(alpha_3='SUN')>>> ussrCountry(alpha_3='SUN', alpha_4='SUHH', withdrawal_date='1992-08-30', name='USSR, Union of Soviet Socialist Republics', numeric='810')
>>> ussr.alpha_4'SUHH'
>>> ussr.alpha_3'SUN'
>>> ussr.name'USSR, Union of Soviet Socialist Republics'
>>> ussr.withdrawal_date'1992-08-30'

也有一个"模糊"的搜索帮助人们发现"合适的"国家 可能只是细分的名称。模糊性还包括 规范化Unicode重音。还包括一些优先顺序 在细分名称和具有国家/地区之前首选国家/地区名称匹配 如果匹配项较多,则在匹配项较少的匹配项之前列出:

>>> pycountry.countries.search_fuzzy('England')[Country(alpha_2='GB', alpha_3='GBR', name='United Kingdom', numeric='826', official_name='United Kingdom of Great Britain and Northern Ireland')]

>>> pycountry.countries.search_fuzzy('Cote')[Country(alpha_2='CI', alpha_3='CIV', name="Côte d'Ivoire", numeric='384', official_name="Republic of Côte d'Ivoire"),
 Country(alpha_2='FR', alpha_3='FRA', name='France', numeric='250', official_name='French Republic'),
 Country(alpha_2='HN', alpha_3='HND', name='Honduras', numeric='340', official_name='Republic of Honduras')]

国家细分(ISO 3166-2)

国家的划分比国家本身要复杂一点 因为它们提供了嵌套的类型化结构。

所有子分区都可以直接访问:

>>> len(pycountry.subdivisions)4847
>>> list(pycountry.subdivisions)[0]Subdivision(code='AD-07', country_code='AD', name='Andorra la Vella', parent_code=None, type='Parish')

可使用其唯一代码访问细分,并至少提供 他们的代码、姓名和类型:

>>> de_st=pycountry.subdivisions.get(code='DE-ST')>>> de_st.code'DE-ST'
>>> de_st.name'Sachsen-Anhalt'
>>> de_st.type'State'
>>> de_st.countryCountry(alpha_2='DE', alpha_3='DEU', name='Germany', numeric='276', official_name='Federal Republic of Germany')

某些细分将另一个细分指定为父级:

>>> al_br=pycountry.subdivisions.get(code='AL-BU')>>> al_br.code'AL-BU'
>>> al_br.name'Bulqiz\xeb'
>>> al_br.type'District'
>>> al_br.parent_code'AL-09'
>>> al_br.parentSubdivision(code='AL-09', country_code='AL', name='Dib\xebr', parent_code=None, type='County')
>>> al_br.parent.name'Dib\xebr'

可以使用国家代码索引查询单个国家的地区:

>>> len(pycountry.subdivisions.get(country_code='DE'))16

>>> len(pycountry.subdivisions.get(country_code='US'))57

脚本(ISO 15924)

脚本可从类似于以下国家的数据库获得:

>>> len(pycountry.scripts)169
>>> list(pycountry.scripts)[0]Script(alpha_4='Afak', name='Afaka', numeric='439')

>>> latin=pycountry.scripts.get(name='Latin')>>> latinScript(alpha_4='Latn', name='Latin', numeric='215')
>>> latin.alpha4'Latn'
>>> latin.name'Latin'
>>> latin.numeric'215'

货币(ISO 4217)

货币数据库与之前的数据库类似:

>>> importpycountry>>> len(pycountry.countries)249
>>> list(pycountry.countries)[0]Country(alpha_2='AF', alpha_3='AFG', name='Afghanistan', numeric='004', official_name='Islamic Republic of Afghanistan')
0

语言(ISO 639-3)

语言数据库也类似:

>>> importpycountry>>> len(pycountry.countries)249
>>> list(pycountry.countries)[0]Country(alpha_2='AF', alpha_3='AFG', name='Afghanistan', numeric='004', official_name='Islamic Republic of Afghanistan')
1

区域设置

locales可在以下目录的 pycountry.locales\u dir 子目录中找到 包裹。根据标准,翻译域称为isoxxx 他们提供翻译。目录的结构与 给python的gett外部模块。

下面是翻译语言名称的示例:

>>> importpycountry>>> len(pycountry.countries)249
>>> list(pycountry.countries)[0]Country(alpha_2='AF', alpha_3='AFG', name='Afghanistan', numeric='004', official_name='Islamic Republic of Afghanistan')
2

查找

对于每个数据库(国家、语言、脚本等),您还可以查找 实体的大小写是无意识的,而不知道值可能匹配哪个键。为了 例子:

>>> importpycountry>>> len(pycountry.countries)249
>>> list(pycountry.countries)[0]Country(alpha_2='AF', alpha_3='AFG', name='Afghanistan', numeric='004', official_name='Islamic Republic of Afghanistan')
3

搜索以返回的第一个匹配项结束。

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

推荐PyPI第三方库


热门话题
服务器(java)无法从具有SSL连接的客户端(c#)接收XML   我有一个maven项目,它不断抛出异常java。lang.NoClassDefFoundError:   什么时候需要将java类X放入名为X.java的文件中?   java如何在spring Boot 2中为spring批处理配置数据源以进行测试   java无法在简单程序上解析符号“上下文”   java JList,内部有3个JLabel   java jacksondataformatcsv:映射不带POJO的数值   eclipse在Java7中允许从数字转换为双精度?(自动装箱)   java写入属性文件不起作用   java My PDF未打开,locgcat中未显示错误   在Java HashMap中使用对象作为键   Java中的长基元类型范围   使用Apache HttpClient的java Http 400 PUT请求   java如何插入日期和时间对象?Php mysql错误