如何从Python3模块提取特定属性?以pycountries模块为例
提取pycountries中国家的特定属性
嘿,我能帮你搞定这个问题!你现在看到的输出是Country类的实例对象,这是因为你直接打印了整个对象,而没有访问它的具体属性。pycountries里的每个countries元素都是封装好的对象,自带了各种可用的属性,咱们直接调用就行。
解决方法:直接遍历并访问属性
你不需要用range(len(countries))来循环,直接遍历countries这个可迭代对象就行,然后通过.来访问你需要的属性:
from pycountry import countries # 打印所有国家的常用名称 for country in countries: print(country.name)
常用属性列表
Country对象提供了很多实用属性,你可以根据需求选择:
country.name:国家的常用名称(比如"Angola")country.alpha_2:两位字母的国家代码(比如"AO")country.alpha_3:三位字母的国家代码(比如"AGO")country.numeric:数字形式的国家代码(比如"024")country.official_name:国家的官方全称(比如"Republic of Angola")
示例:同时提取多个属性
如果想一次性输出多个信息,比如名称加两位代码,可以这么写:
from pycountry import countries for country in countries: print(f"{country.name} - 代码:{country.alpha_2}")
怎么查看所有可用属性?
你之前用dir()的思路是对的,只要拿一个具体的Country对象来查看就行:
from pycountry import countries # 取第一个国家对象 first_country = next(iter(countries)) # 打印所有属性和方法 print(dir(first_country))
输出里那些不带下划线(_)的基本就是可以直接访问的公开属性啦。
内容的提问来源于stack exchange,提问作者HunterForce
相关产品推荐
相关产品推荐

