Complete worked example
python
import csv
import io
import json
def convert(text):
rows = json.loads(text)
if not isinstance(rows, list):
raise ValueError("Expected a list")
fields = ["id", "title"]
with io.StringIO(newline="") as buffer:
writer = csv.writer(buffer, lineterminator="\n")
writer.writerow(fields)
for row in rows:
if not isinstance(row, dict) or not all(
isinstance(row.get(key), str) and row[key].strip() for key in fields
):
raise ValueError("Expected nonempty record fields")
writer.writerow([row[key].strip() for key in fields])
return buffer.getvalue()- Reasoning
- Parsing and field validation precede a real CSV writer with an explicit header.