|
|
|
@ -21,18 +21,43 @@ def main(a, w1):
|
|
|
|
|
def query_isbn(isbn, csv_path='datas/books.csv'):
|
|
|
|
|
"""
|
|
|
|
|
同步查询ISBN信息(直接返回结果)
|
|
|
|
|
|
|
|
|
|
:param isbn: ISBN编号(字符串)
|
|
|
|
|
:param csv_path: CSV文件路径(默认当前目录)
|
|
|
|
|
:return: 匹配记录字典或错误信息字符串
|
|
|
|
|
:param csv_path: CSV文件路径
|
|
|
|
|
:return: 匹配记录列表或错误信息字符串
|
|
|
|
|
"""
|
|
|
|
|
try:
|
|
|
|
|
with open(csv_path, 'r', encoding='utf-8') as f:
|
|
|
|
|
reader = csv.DictReader(f)
|
|
|
|
|
results = []
|
|
|
|
|
for row in reader:
|
|
|
|
|
if row['isbn'].strip() == isbn.strip():
|
|
|
|
|
results.append(row)
|
|
|
|
|
return results if results else ["未找到匹配的图书记录"]
|
|
|
|
|
except FileNotFoundError:
|
|
|
|
|
return [f"错误:文件 {csv_path} 不存在"]
|
|
|
|
|
except Exception as e:
|
|
|
|
|
return [f"查询失败:{str(e)}"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def fuzzy_search_book(keyword, csv_path='datas/books.csv'):
|
|
|
|
|
"""
|
|
|
|
|
模糊搜索图书信息
|
|
|
|
|
:param keyword: 搜索关键词
|
|
|
|
|
:param csv_path: CSV文件路径
|
|
|
|
|
:return: 匹配记录列表或错误信息字符串
|
|
|
|
|
"""
|
|
|
|
|
try:
|
|
|
|
|
with open(csv_path, 'r', encoding='utf-8') as f:
|
|
|
|
|
reader = csv.DictReader(f)
|
|
|
|
|
results = []
|
|
|
|
|
for row in reader:
|
|
|
|
|
if row['isbn'].strip() == isbn.strip(): # 增加空格过滤
|
|
|
|
|
return row
|
|
|
|
|
return "未找到匹配的图书记录"
|
|
|
|
|
# 在书名、作者和分类中搜索关键词
|
|
|
|
|
if (keyword.lower() in row['title'].lower() or
|
|
|
|
|
keyword.lower() in row['author'].lower() or
|
|
|
|
|
keyword.lower() in row['category'].lower()):
|
|
|
|
|
results.append(row)
|
|
|
|
|
return results if results else "未找到匹配的图书记录"
|
|
|
|
|
except FileNotFoundError:
|
|
|
|
|
return f"错误:文件 {csv_path} 不存在"
|
|
|
|
|
except Exception as e:
|
|
|
|
|