File size: 439 Bytes
83fe4f9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import csv
import io
import json


def parse_uploaded_payload(filename: str, content: str, purpose: str) -> dict:
    suffix = filename.rsplit(".", 1)[-1].lower()
    if suffix == "json":
        parsed = json.loads(content)
    elif suffix in {"csv", "txt"}:
        reader = csv.DictReader(io.StringIO(content))
        parsed = list(reader)
    else:
        parsed = {"raw": content}
    return {"purpose": purpose, "records": parsed}