41 lines
1002 B
Python
41 lines
1002 B
Python
from pathlib import Path
|
|
import aiofiles
|
|
|
|
async def load_template(template_name: str) -> str:
|
|
"""
|
|
异步加载模板内容(非阻塞)
|
|
"""
|
|
plugin_dir = Path(__file__).parent.parent
|
|
template_path = plugin_dir / "templates" / template_name
|
|
|
|
if not template_path.exists():
|
|
raise FileNotFoundError(f"模板文件不存在: {template_path}")
|
|
|
|
async with aiofiles.open(template_path, "r", encoding="utf-8") as f:
|
|
return await f.read()
|
|
|
|
|
|
def extract_fields(data_list, fields):
|
|
"""
|
|
从字典列表中提取多个字段
|
|
|
|
Args:
|
|
data_list (list[dict]): 包含字典的列表
|
|
fields (list[str]): 要提取的字段名列表
|
|
|
|
Returns:
|
|
list[dict]: 只包含指定字段的新字典列表
|
|
"""
|
|
result = []
|
|
try:
|
|
for item in data_list:
|
|
extracted = {field: item.get(field) for field in fields}
|
|
result.append(extracted)
|
|
except Exception as e:
|
|
return []
|
|
return result
|
|
|
|
|
|
|
|
|