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