python - ``空值停止显示行
问题描述
我想根据用户输入的地址显示数据库中的所有学生。有的有资格,有的没有。无论如何,我仍然想展示他们的详细信息,但我很难在没有资格的学生周围工作。
下面的代码在他们没有资格但在他们有资格的地方工作正常时会引发错误。
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"], )
解决方案
解决此问题的一种简单方法是在代码中使用 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 值引发异常,那么它将为学生打印“无资格”
推荐阅读
- c# - XPath 在 c# 中返回 null 但在 XPath 验证器中有效
- css - Object-fit:cover 不再适用于表格单元?
- python - 如何使用python2从rest输出中访问字段值?
- python - Python - 如何通过计数数组加速余弦相似度
- azure - Azure 数据工厂将多个文件压缩为一个 zip 文件
- c# - 在 EF6 中更新实体子集合
- node.js - OpenStack MERN 应用程序正在抛出 net::ERR_CONNECTION_REFUSED
- c++ - 未在此范围内声明函数错误
- c++ - 如何强制ROS以单线程模式运行
- node.js - 如果失败X次,nodejs重试功能