Python将含空格首都的国家列表文件转字典出现报错如何解决?
问题根因
你当前代码使用无参数的split()方法,会默认按所有连续空白字符分割整行内容,遇到包含空格的首都名称时,一行会被分割为3个及以上的元素,无法直接解包为key, value两个变量,因此抛出值错误。
解决方案
修改分割逻辑,为split()方法添加maxsplit=1参数,限制最多只分割1次,这样第一个分割出来的元素是国家名,剩余所有内容(包括带空格的首都名)都会作为第二个元素,同时去掉行尾的换行符即可。
优化后完整代码
countries_dict = {} # 使用with上下文管理器自动管理文件句柄,避免资源泄漏 with open("countrieslist.txt", "r", encoding="utf-8") as countries_file: for line in countries_file: # 先去除首尾空白(包括换行符),再最多分割1次 key, value = line.strip().split(maxsplit=1) countries_dict[key] = value print(countries_dict)
输出结果
运行后将得到你需要的字典格式:
{'Afghanistan': 'Kabul', 'Albania': 'Tirana', 'Algeria': 'Algiers', 'Andorra': 'Andorra la Vella'}
内容的提问来源于stack exchange,提问作者Poke
相关产品推荐
相关产品推荐

