try-except 和字典列表

try-except and a list of dictionary

我有一个字典列表来描述格式。我想使用 try/except 构造仅打印“US”。因为我可能有更多列表,其中没有“国籍”标签。我只想到 if/else 构造。请帮我。谢谢!

list_components = js['results'][0]['list_components']
    try:
        for item in list_components:
            item["types"] == ["nationality", "political"]
            print('The nationality information for the list:', item["short_name"])
                          
    except:
        print('No nationality is available for this list.')

太大 post 作为评论,所以我 post 编辑它作为答案,

这个代码适合你吗?我的意思是,try, except 在这里什么都不做......但是如果这不是你想要的,请告诉我

list_components = js['results'][0]['list_components']
try:
    for item in list_components:
        item["short_name"] == 'US' and item["types"] == ["nationality", "political"] and print('The nationality information for the list:', item["short_name"])
                      
except:
    print('No nationality is available for this list.')

这是您想要实现的一种非常天真的方法。但这不是一个好的做法。这就像从某物中创造出某物,而忽略了程序员采用的所有良好规则。

list_components = js['results'][0]['list_components'] 

for item in list_components:
    try:
        #Generate error when there is no nationality otherwise print nationality 
        status = item["types"][0] == "nationality"
        status and print("Nationality: ", item["short_name"])
        raise ValueError
    except:
        #Print prompt
        not status and print("No Nationality")

这个解决方案不需要任何 try/catch 结构,可以完全用 if-else 解决。如果其他人需要它,这里有一个更好、更简单的解决方案。

for item in list_components:
    print("Nationality: " item["short_name"]) if item["types"][0] == "nationality" else print("No Nationality")