我正在尝试创建一个Python脚本来读取CSV文件中的列,该列将读取一个国家/地区名称,但是随后它将使用ISO 3166 Alpha2标准将该名称更改为国家/地区代码。
我已经引用了pycountries: Convert Country Names (Possibly Incomplete!) to 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 name
(alpha2或alpha3):
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
关于python - 使用Python DictReader/DictWriter将国家/地区名称转换为国家/地区代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22616944/