import json, re

P = '/data/news/json/yes_data/0926data.json'
raw = json.load(open(P, encoding='utf-8'))
d = {s['name']: s['list'] for s in raw} if isinstance(raw, list) else raw

def nc(s): return len(re.sub(r'[^\w]', '', str(s), flags=re.UNICODE))

FIX = {
    ('brand_hotspots', 3): 'Glenn Martens 告别 Diesel，Donatella 筹备新品牌',
    ('social_hotspots', 4): '中国蝉联全球工业机器人最大市场，占全球安装量 59%',
}

for (sec, i), new in FIX.items():
    e = d[sec][i]
    old = e['title']
    if nc(new) > 35:
        print(f'  ❌ [{sec}][{i}] 新标题仍 {nc(new)} 字，需再压')
        continue
    e['title'] = new
    print(f'  ✅ [{sec}][{i}] {nc(old)}字 → {nc(new)}字')
    print(f'       改前: {old}')
    print(f'       改后: {new}')

if isinstance(raw, list):
    out = [{'name': k, 'list': v} for k, v in d.items()]
else:
    out = raw
json.dump(out, open(P, 'w', encoding='utf-8'), ensure_ascii=False, indent=2)

print()
print('=== 全量复查（>35 字的标题）===')
bad = [(s['name'], i, nc(e['title']), e['title'])
       for s in (out if isinstance(out, list) else [])
       for i, e in enumerate(s['list'])
       if nc(e['title']) > 35]
print('  ', bad or '无 ✅')
