# CSV 查询代码模板

事实核查第0步用。优先查本地 CSV，不走外部搜索。

## 通用模板

```python
import csv
from collections import Counter

with open("~/.hermes/知识库/3+证书招生录取数据24-26.csv") as f:
    rows = list(csv.DictReader(f))

# 过滤某一年
year = '2026'
data = [r for r in rows if r['nianfen'] == year]
print(f"年份={year}, 记录数={len(data)}")
```

## 查询1：证书接受情况

```python
# 不限证书的专业数
unlimited = [r for r in data if '不限' in (r.get('zhengshuyaoqiu') or '')]
print(f"不限证书: {len(unlimited)} 个专业")

# 有特定要求的
restricted = [r for r in data if '不限' not in (r.get('zhengshuyaoqiu') or '') and r.get('zhengshuyaoqiu','').strip()]
print(f"有证书限制: {len(restricted)} 个专业")

# 各证书被接受次数
cert_counter = Counter()
for r in restricted:
    certs = [c.strip() for c in r['zhengshuyaoqiu'].split(',')]
    cert_counter.update(certs)
for cert, count in cert_counter.most_common(15):
    print(f"  {count:5d} 专业: {cert}")
```

## 查询2：录取分数线分析

```python
# 某年最低录取分分布
scores = [int(r['luquzuidifen']) for r in data if r.get('luquzuidifen','').isdigit()]
print(f"最低分范围: {min(scores)}-{max(scores)}, 中位数: {sorted(scores)[len(scores)//2]}")

# 最高/最低分的专业
sorted_data = sorted([r for r in data if r.get('luquzuidifen','').isdigit()], 
                     key=lambda r: int(r['luquzuidifen']))
print("最低分TOP5专业:")
for r in sorted_data[:5]:
    print(f"  {r.get('title','')}: {r['luquzuidifen']}分 (排位{r.get('luquzuidipaiwei','')})")
```

## 查询3：本科批次特写

```python
benke = [r for r in rows if r.get('zhaoshengpici','') and '本科' in r['zhaoshengpici']]
print(f"本科批次: {len(benke)} 条记录")
for r in benke[:10]:
    print(f"  {r.get('title','')} | 最低:{r.get('luquzuidifen','')} | 排位:{r.get('luquzuidipaiwei','')}")
```

## 查询4：证书大类覆盖

```python
categories = {'计算机':0, '英语':0, '14种技能':0, '人社':0, '1+X':0, '不限':0}
for r in data:
    req = r.get('zhengshuyaoqiu') or ''
    if '不限' in req: categories['不限'] += 1
    if '计算机' in req: categories['计算机'] += 1
    if '英语' in req: categories['英语'] += 1
    if '（人社）' in req: categories['人社'] += 1
    if '1+X' in req: categories['1+X'] += 1
    skills = ['电工','电子','机械','土木','化学','会计','生物','美术','教育','音乐','旅游','烹饪','护理']
    if any(s in req for s in skills): categories['14种技能'] += 1

for cat, count in categories.items():
    print(f"{cat}: {count} 专业 ({count/len(data)*100:.0f}%)")
```
