For legacy formats, sometimes you gotta roll your own parser. I’ve had success with `parsimonious` (Python library) for writing custom grammars.
And yeah, always assume the data is dirty. I add sanity checks like "does this column have at least 50% non-null values?" before processing.
And yeah, always assume the data is dirty. I add sanity checks like "does this column have at least 50% non-null values?" before processing.
