(Python)调用多个我自己的函数,NameError 未定义,在函数之间传递输出



我知道这种初学者的错误,但我不确定如何change_db_data检测mycol

在函数之间传递值mycol的问题

(附言。mycol表示在 MongoDB 中收集)

错误:

回溯(最近一次调用):
文件 "C:\Users\chuan\OneDrive\Desktop\10.20_connect_mongoD_(Query, 删除)\main.py",第 16 行,在
x = change_db_data(myquery_json、newvalues_json、one_or_many_bool)

中文件"C:\用户\川\OneDrive\桌面\10.20_connect_mongoD_(查询, 删除)\Iser_upd_qur_del_function.py",第 14 行,在 change_db_data
x = mycol.update_many(myquery_json, newvalues_json)
NameError: 未定义名称"mycol">

函数文件名Iser_upd_qur_del_function.py

import pymongo
import datetime
import json
def init_db(ip, db, coll):
myclient = pymongo.MongoClient('mongodb://' + ip + '/')
mydb = myclient[db]
mycol = mydb[coll]
return mydb, mycol

def change_db_data(myquery_json, newvalues_json, one_or_many_bool):

if one_or_many_bool == True:
x = mycol.update_many(myquery_json, newvalues_json)
else:
x = mycol.update_one(myquery_json, newvalues_json)
return x
  • 主要功能:
from Iser_upd_qur_del_function import *
ip_input = input("Enter the ip: ")
exist_DB_name = input("Enter exist DB name: ")
exist_coll_name = input("Enter exist collection name: ")
mydb, mycol  = init_db(ip_input, exist_DB_name, exist_coll_name)
myquery_str = input("Enter ur query: ")
update_one_or_many = input("U are update one or many values? (ex:1 for many , 0 for one): ")
newvalues_str = input("Enter new values: ")
one_or_many_bool = bool(int(update_one_or_many))
myquery_json =json.loads(myquery_str)
newvalues_json =json.loads(newvalues_str)
x = change_db_data(myquery_json, newvalues_json, one_or_many_bool)
print(x)
print(x.modified_count, "documents updated.")

你没有将'mycol'传递给你的change_db_data()函数。

change_db_data(myquery_json, newvalues_json, one_or_many_bool, mycol)
def change_db_data(myquery_json, newvalues_json, one_or_many_bool, mycol):

相关内容

  • 没有找到相关文章

最新更新