Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将局部变量添加到pymongo.find,如果它';不是没有吗?_Python_Mongodb_Python Requests_Pymongo - Fatal编程技术网

Python 如何将局部变量添加到pymongo.find,如果它';不是没有吗?

Python 如何将局部变量添加到pymongo.find,如果它';不是没有吗?,python,mongodb,python-requests,pymongo,Python,Mongodb,Python Requests,Pymongo,我使用api函数运行一个web服务,该函数使用我创建的方法与MongoDB交互,使用pymongo post附带的json数据可能包括也可能不包括一个字段:firm。我不想为不包含firm字段的帖子创建新方法 所以我想在pymongo中使用公司。如果它确实存在,我想查找它,如果不存在,我想跳过它如何使用一个api函数和一个pymongo方法实现这一点? API函数: @app.route(f'/{API_PREFIX}/wordcloud',methods=['POST'] def生成_wc()

我使用api函数运行一个web服务,该函数使用我创建的方法与MongoDB交互,使用pymongo

post附带的json数据可能包括也可能不包括一个字段:
firm
。我不想为不包含
firm
字段的帖子创建新方法

所以我想在pymongo中使用
公司
。如果它确实存在,我想查找它,如果不存在,我想跳过它如何使用一个api函数和一个pymongo方法实现这一点?

API函数:

@app.route(f'/{API_PREFIX}/wordcloud',methods=['POST']
def生成_wc():
request=request.get\u json()
firm=请求获取(“firm”).lower()
source=请求\[“source”]
自=datetime.strtime(请求[“自”],%Y-%m-%d)
until=datetime.strtime(请求[“until”],%Y-%m-%d)
items=mongo.get_推文(固定、自、至)
...
pymongo方法:

def get_tweets(self,firm:str,since:datetime,until:datetime):
tweets=self.DB.tweets.find(
{
#在这里使用firm,如果它存在的话(我的意思不是没有),否则只需按日期获取项目
'date':{'gte':自,$lte':至}
})
...
在第二个代码中,在
find
中的注释行


谢谢。

因为它涉及两种不同的查询:
{date:…}
{date:…,firm:…}
取决于输入中是否存在
firm
,您必须检查
firm
获取tweets
中是否为
并执行正确的查询

例如:

def get_tweets(self, since, until, firm=None):
    query = { 'date': { '$gte': since, '$lte': until } }
    if firm is not None:
        query['firm'] = firm
    tweets = self.DB.tweets.find(query)
    ....

请注意,由于
firm
有一个默认值,因此它必须是
get\u tweets
参数列表中的最后一个。

这实际上看起来不错,可以有一个基本查询,并且可以根据某些条件添加更多字段。我会尽快试一试,谢谢。