繁体   English   中英

使用Python DictReader / DictWriter将国家/地区名称转换为国家/地区代码

[英]Convert Country Names to Country Code using Python DictReader/DictWriter

我正在尝试创建Python脚本来读取CSV文件中的列,该列将读取国家/地区名称,但随后它将使用ISO 3166 Alpha2标准将该名称更改为国家/地区代码。

我引用了pycountries:将国家/地区名称(可能不完整!)转换为CountryCodes ,但是我在使用代码时遇到了困难。

基本上,我要在一个列中包含数百到数千个条目的CSV文件中,但是我需要根据ISO 3166标准将全名转换为国家/地区代码。 我一直在玩“ pycountry”和python csv模块中的各种功能,但是我一直无法使它工作。 然后,我想用国家代码或至少输出到新文件覆盖国家名称。 建议?

我在其余的代码中使用了类似以下内容的代码,但是我不确定如何编写我想做的国家转换:

import sys
import csv
import pycountry

csv_file = csv.DictReader(open(sys.argv[1], 'rb'))

for column in csv_file:
    X = column['name']...

遍历pycountry.countries并初始化映射name -> short namealpha2alpha3 ):

mapping = {country.name: country.alpha2 for country in pycountry.countries}
for column in csv_file:
    print column['name'], mapping.get(column['name'], 'No country found')

对于包含以下内容的文件:

name
Kazakhstan
Ukraine

它打印:

Kazakhstan KZ
Ukraine UA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2025 STACKOOM.COM