我有一个项目,要求我创建一个country:capital电子表格,例如美国| excel中的D.C.问题在于一些关键地区是没有首都的大洲和地区。我如何只打印国家?
for ctry in countries:
print(f'{ctry["name"]:30}{ctry["capitalCity"]}')
导致:
Middle East & North Africa (IDA & IBRD countries)
Tonga Nuku'alofa
South Asia (IDA & IBRD)
Sub-Saharan Africa (IDA & IBRD countries)
Trinidad and Tobago Port-of-Spain
编辑:阅读评论后,我意识到我没有提供足够的信息,因此我将尝试在此处填补这些空白。我从世界银行API(http://api.worldbank.org/v2/country?format=json&per_page=400)中获得了国家词典,该列表还包括各大洲和地区。我写了一个if语句,
if ctry['capitalCity'] in ctry:
print(f'{ctry["name"]:20}{ctry["capitalCity"]}')
else:
print('not working')
我在这里的思考过程是,如果我使用'in',则if语句将只能打印具有相应值的键,但是那没有用,所以我来到了这里。很抱歉缺少信息,但是感谢您的所有建议。
答案 0 :(得分:1)
假设countries
是包含国家,大陆和领地的词典的列表,并且各大陆和领地没有'capitalCity'元素(或一个解析为False的元素,如None):< / p>
actual_countries = [c for c in countries if c.get('capitalCity')]
现在actual_countries中的所有内容都是带有capitalCity元素的内容。
答案 1 :(得分:0)
从您的问题开始-> 一些键是没有首都的大洲和地区。
这意味着您的国家可能看起来像这样,其中各大洲的首都(例如亚洲)为空,首都(例如澳大利亚)为空,或者首都(例如北美)都不存在。
因此,根据上述假设,以下国家/地区中有3种(空,无,无密钥)情况。
countries = [{'name':'India','capitalCity':'New Delhi'},{'name':'US','capitalCity':'Washington'},{'name':'Australia','capitalCity':None},{'name':'Albania','capitalCity': 'Tirana'},{'name':'Algeria','capitalCity':'Algiers'}, {'name':'Angola', 'capitalCity': 'Luanda'},{'name':'Asia','capitalCity': ''}, {'name':'North America'}]
您可以在下面的代码中尝试跳过大洲/地区。
for ctry in countries:
if ctry.get('capitalCity'):
print(f'{ctry["name"]:30}{ctry["capitalCity"]}')