isn't it better to reuse `DictOfStrings_from_string` here somehow?

You're reimplementing that function here, and this only allows for a single dict item?