Out of curiosity, why don't you want to use sqlite?
I'd say Sqlite is the lightweight solution here. As the creator of Sqlite said, it was explicitly designed for your task of working as a local store/cache so you can do some data processing, replacing the myriad of ad-hoc "pile of files" databases people might otherwise come up with.
I have previously used XML file in that situation. It had to be editable by hand and version nicely, so a file per entry was used (only ~100 entries total).
How about describing the rows as a struct and using serde?
However, this feature is not in the amalgamation. I don't know about the Rust SQLite crate(s), but I know that the Go SQLite packages use the amalgamation. If this is true for Rust as well (it would probably make sense), then this might become complicated.