首页 > 解决方案 > ``空值停止显示行

问题描述

我想根据用户输入的地址显示数据库中的所有学生。有的有资格,有的没有。无论如何,我仍然想展示他们的详细信息,但我很难在没有资格的学生周围工作。

下面的代码在他们没有资格但在他们有资格的地方工作正常时会引发错误。

KeyError'qualifications'

我该如何解决这个问题?

def call_query(address):
    with MongoClient() as client:
        db = client.get_database("test")
        coll = db.get_collection("docs")
        for col in coll.find({"details.address": { "$regex":address}}):
          print (col["_id"] , ":",  col["details"]["name"],":",  col["details"]["age"], col["qualifications"], )

标签: pythonmongodb

解决方案


解决此问题的一种简单方法是在代码中使用 try except :

def call_query(address):
    with MongoClient() as client:
        db = client.get_database("test")
        coll = db.get_collection("docs")
        for col in coll.find({"details.address": { "$regex":address}}):
          try:
              print (col["_id"] , ":",  col["details"]["name"],":",  col["details"] 
              ["age"], col["qualifications"], )
          except KeyError:
              print (col["_id"] , ":",  col["details"]["name"],":",  col["details"] 
              ["age"], "No qualification", )

如果由于 None 值引发异常,那么它将为学生打印“无资格”


推荐阅读