Fix for py2 not having read_dict()

Looks like I was slightly hasty in getting rid of fill_in_defaults (but
it was just so terrible...). Still, this is a better solution overall.