为了账号安全,请及时绑定邮箱和手机立即绑定

PyMongo insert_one 异常/错误处理

PyMongo insert_one 异常/错误处理

慕丝7291255 2022-07-19 15:10:04
我正在尝试确保我已设置错误处理。我不确定我是否使用了 try、except 和 return 正确。所需的输出是 True 或 False 如果文档插入成功,则为 True,否则为 False。我做对了吗?我担心的是它总是会返回 true 吗?不完全确定 try/except 是如何工作的。谢谢。import jsonimport pymongofrom bson import json_utilfrom pymongo import MongoClientfrom pymongo import errorsconnection = MongoClient('localhost', 27017)db = connection['city']collection = db['inspections']def insert_document(documentToInsert):    try:      collection.insert_one(documentToInsert)      return True    except WriteConcernError as wce:      print(wce)      return False    except WriteError as we:      print(we)      return Falsedef main():    document = {       "id" : "11111-2019-ENFO",      "certificate_number" : 9278806,      "business_name" : "TAXOLOGY",      "date" : "Feb 20 2015",      "result" : "No Violation Issued",      "sector" : "Accounting - 111",      "address" :      {        "city" : "MISSION HILLS",        "zip" : 91401,        "street" : "Sepulveda",        "number" : 1809      }    }    print(insert_document(document))main()
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

我没有看到任何write_concern被传入作为您写入的选项,我假设您可能看不到WriteConcernError. 检查此:pymongo.write_concern.WriteConcern有关如何设置的示例WriteConcern。此外,仅当您想在发生某种类型的错误时执行某些功能时才需要这些错误检查,因为您只需要返回True/ False,那么您可以删除所有这些错误检查:


代码 :


connection = MongoClient('localhost', 27017)

db = connection['city']

collection = db['inspections']



def insert_document(documentToInsert):

    try:

        collection.insert_one(documentToInsert)

        return True

    except Exception as e:

        print("An exception occurred ::", e)

        return False



def main():

    document = {

        "id": "11111-2019-ENFO",

        "certificate_number": 9278806,

        "business_name": "TAXOLOGY",

        "date": "Feb 20 2015",

        "result": "No Violation Issued",

        "sector": "Accounting - 111",

        "address":

        {

            "city": "MISSION HILLS",

            "zip": 91401,

            "street": "Sepulveda",

            "number": 1809

        }

    }


    print(insert_document(document))



main()


查看完整回答
反对 回复 2022-07-19
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信