From 9b9b14a3839b3acea1fc45108d93b2bdb10c5801 Mon Sep 17 00:00:00 2001 From: zhaoxiangpeng <1943364377@qq.com> Date: Mon, 12 Jan 2026 09:04:47 +0800 Subject: [PATCH] =?UTF-8?q?cnki:=E5=A4=9A=E4=B8=AA=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../science_article_cnki/models/cnki_model.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/science_article_cnki/science_article_cnki/models/cnki_model.py b/science_article_cnki/science_article_cnki/models/cnki_model.py index 2b1ee44..96077b2 100644 --- a/science_article_cnki/science_article_cnki/models/cnki_model.py +++ b/science_article_cnki/science_article_cnki/models/cnki_model.py @@ -338,6 +338,7 @@ def add_limit_2query_body(limit_query: Union[List[dict], dict], body_key: str, q # 相同的Key类型只能有一个,如果同类型有多个条件,需要追加到Items[]内,还不能重复 child_items = group["ChildItems"] if group["Key"] == body_key: + extended = False if not child_items: # 直接添加进去 if isinstance(limit_query, dict): @@ -346,6 +347,7 @@ def add_limit_2query_body(limit_query: Union[List[dict], dict], body_key: str, q group["ChildItems"].extend(limit_query) else: raise ValueError("不支持的limit类型 \n%s" % limit_query) + extended = True break for child_item in child_items: # 对child_item['Items']的值进行过滤,只添加不重复的 @@ -362,9 +364,16 @@ def add_limit_2query_body(limit_query: Union[List[dict], dict], body_key: str, q for limit_query_item in limit_query['Items']: # 如果新的条件已存在,跳过 if child_item_map.get(limit_query_item['Field'], {}).get(limit_query_item["Key"]): + # 重复也相当于追加过 + extended = True continue else: child_item['Items'].append(limit_query_item) + extended = True + if not extended: + child_items.append(limit_query) + break + break