[英]Why am I getting TypeError: 'module' object is not callable in python?
我正在創建一個字符串,然后在查詢mongodb集合的方法中使用它。 最終,日期將來自用戶輸入。 這是相關的代碼和字符串:
import pymongo
from pymongo import MongoClient
from datetime import datetime
import time
import datetime
start_yr = 2015
start_mnth = 2
start_day = 1
end_yr = 2015
end_mnth = 2
end_day = 28
# this is the line called in the error
created_at_string = { "created_at": {"$gte" : datetime(start_yr, start_mnth, start_day),"$lt" : datetime(end_yr, end_mnth, end_day)}}
想法是在更復雜的查詢方法中使用created_at_string
作為參數。
我越來越:
Traceback (most recent call last):
File "main.py", line 218, in <module>
program.runProgram()
File "main.py", line 61, in runProgram
report.RcreateReport()
File "/filepath/report.py", line 95, in RcreateReport
created_at_string = { "created_at": {"$gte" : datetime(start_yr, start_mnth, start_day),"$lt" : datetime(end_yr, end_mnth, end_day)}}
TypeError: 'module' object is not callable
為什么?
我發現了您的問題:
from datetime import datetime
import time
import datetime
讓我們按順序看一下:
在globals
,您有一個稱為datetime
的函數。 然后,導入time
,一個模塊對象。 然后,您導入datetime
,從而覆蓋您的datetime
函數。 這是一個例子:
>>> from datetime import datetime
>>> datetime(2015, 05, 26)
datetime.datetime(2015, 5, 26, 0, 0)
>>> import datetime
>>> datetime(2015, 05, 26)
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
datetime(2015, 05, 26)
TypeError: 'module' object is not callable
>>>
無論如何,即使您更改順序,也會覆蓋某些內容,無論是函數對象還是模塊對象。 因此,只需重命名:
import datetime
import time
from datetime import datetime as dt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.