from pathlib import Path import json,csv out=Path(r'G:\项目\NumberSwipe-Variants\design\demo-50');plan=json.loads((out/'demo-design.json').read_text(encoding='utf-8')) columns=['participant','order_group','session','level_id','content_revision','display_position_a','teaching_or_calibration','started_at','first_draw_at','thinking_seconds','drawing_seconds','total_seconds','first_wrong_step','error_detection_delay_steps','backtracks','restarts','hint_count','completed','exit_reason','next_level_started','next_session_returned','subjective_difficulty_1_5','rule_understood','key_reasoning','feedback'] with (out/'playtest-template.csv').open('w',encoding='utf-8-sig',newline='') as f: writer=csv.DictWriter(f,fieldnames=columns);writer.writeheader() for l in plan['levels']:writer.writerow({'level_id':l['levelId'],'display_position_a':l['displayOrder']})