Is that intended to be so or just some legacy code or smth? IMHO, it is: 1. Misguiding 2. Introduces necessity to validate and convert the result Wouldn't it be better to always return dicts?