用叉子叉pycountry,更正台湾的国名

correct_pycountr的Python项目详细描述


pycountry提供标准的iso数据库:

639
语言
3166
国家
3166-2
国家细分
4217
货币
15924
脚本

该软件包包括Debian'spkg isocode的一个副本,并生成数据 可通过python api访问。

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

国家(ISO 3166)

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

>>> import pycountry
>>> len(pycountry.countries)
246
>>> 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
'DE'
>>> germany.alpha3
'DEU'
>>> germany.numeric
'276'
>>> germany.name
'Germany'
>>> germany.official_name
'Federal Republic of Germany'

请注意,由iso 3166-3子标准定义的历史国家不是 包括在这个列表中。

国家细分(ISO 3166-2)

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

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

>>> len(pycountry.subdivisions)
4548
>>> list(pycountry.subdivisions)[0]
<pycountry.db.Subdivision object at 0x...>

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

>>> de_st= pycountry.subdivisions.get(code='DE-ST')
>>> de_st.code
'DE-ST'
>>> de_st.name
'Sachsen-Anhalt'
>>> de_st.type
'State'
>>> de_st.country
<pycountry.db.Country object at 0x...>

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

>>> al_br = pycountry.subdivisions.get(code='AL-BU')
>>> al_br.code
'AL-BU'
>>> al_br.name
u'Bulqiz\xeb'
>>> al_br.type
'District'
>>> al_br.parent_code
'AL-09'
>>> al_br.parent
<pycountry.db.Subdivision object at 0x...>
>>> al_br.parent.name
u'Dib\xebr'

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

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

脚本(ISO 15924)

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

>>> len(pycountry.scripts)
146
>>> 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
'Latn'
>>> latin.name
'Latin'
>>> latin.numeric
'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
'ARS'
>>> argentine_peso.name
'Argentine Peso'
>>> argentine_peso.numeric
'032'

语言(ISO 639)

语言数据库也类似:

>>> len(pycountry.languages)
486
>>> list(pycountry.languages)[0]
<pycountry.db.Language object at 0x...>
>>> aragonese = pycountry.languages.get(alpha2='an')
>>> aragonese.alpha2
'an'
>>> aragonese.bibliographic
'arg'
>>> aragonese.terminology
'arg'
>>> aragonese.name
'Aragonese'

区域设置

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

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

>>> import gettext
>>> german = gettext.translation('iso3166', pycountry.LOCALES_DIR,
...                              languages=['de'])
>>> german.install()
>>> _('Germany')
'Deutschland'

台湾国名

台湾的正式名称是中华民国,但由于 来自中国政府的压力,iso将台湾定义为 中国省,这毕竟不是真的。因此,我们替换 在这个岔口中,中国省被称为中华民国 叉子主要用来。如果你不同意这个修改,请不要 使用它。

>>> import gettext
>>> tw = pycountry.countries.get(alpha2='TW')
>>> tw.name
'Taiwan, Republic of China'
>>> zh_tw = gettext.translation('iso3166', pycountry.LOCALES_DIR,
...                             languages=['zh_TW'])
>>> zh_tw.install(unicode=True)
>>> _('Taiwan, Republic of China')
u'\u4e2d\u83ef\u6c11\u570b'

更改

0.12.2(2011-05-19)

  • 使lxml成为可选依赖项

0.12.1.1(2010-10-19)

  • 修复某些区域设置错误
  • 在readme.txt中添加台湾国家名称的测试
  • 按照原始项目使用修订版 770FA9CD603F90F9FB982B32FE6F45D253F1D33E。

0.12.1(2010-04-21)

  • 补救Brown Bag Release 0.12由于错误而丢失了所有数据文件 数据构建系统与zest.relaeser的交互 完全释放脚本。

0.12(2010-04-20)

  • 跟随debian存储库到git。
  • 将数据升级至版本770FA9CD603F90F9FB982B32FE6F45D253F1D33E 5488及其他要求。
  • 反映细分更改及其在XML中引用父级的方式 (他们过去用空格作为分隔符,现在用连字符)。
  • 稍微重构一下索引构建结构。
  • 从细分数据库中删除多余的“代码”索引。(连同 数据升级也消除了所有恼人的警告 描述见6667)。
  • 一些轻PEP8的改进。

0.11(2009-03-03)

  • 将Debian存储库更新为R1752。

0.10(2008-06-26)

  • 增加了对国家细分的支持(ISO 3166-2)。

0.9

  • 初始版本

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

推荐PyPI第三方库


热门话题
正在从节点解密字符串。Java中的js?   java未来超时和IO超时   java apache camel多播以异步方式执行聚合   java需要710次尝试在Android和Raspberry Pi之间建立socket连接   在Java中使用“+,”循环绘制形状   java安卓:如何计算两点之间的距离   java多线程Hello World   刷新后缓存共享变量的java Freemarker模板   java我试图通过迭代用整数填充数组,但我得到了ArrayIndexOutOfBoundsException   JNI C++到java 32位图像的不正确显示   java哪个更快:克隆还是使用流?   java cache2k和Generic T不能很好地结合在一起   java如何在读取文件之前更新文件内容?   java如何在GWT中从JSNI方法调用JSNI方法   将MySQL类型文本映射到Java Hibernate的类型   java如何按长度对字符串排序   java RecyclerView:在滚动期间不断更改数据