| import csv | |
| import io | |
| from typing import List, Dict | |
| CSV_COLUMNS = [ | |
| "scan_id", | |
| "filename", | |
| "file_type", | |
| "pii_type", | |
| "matched_value", | |
| "redacted_value", | |
| "confidence", | |
| "line", | |
| "column", | |
| "field", | |
| ] | |
| def export_findings_csv(findings: List[Dict]) -> str: | |
| buffer = io.StringIO() | |
| writer = csv.DictWriter(buffer, fieldnames=CSV_COLUMNS) | |
| writer.writeheader() | |
| for row in findings: | |
| writer.writerow({key: row.get(key, "") for key in CSV_COLUMNS}) | |
| return buffer.getvalue() | |