JSON is a wire format
JSON is text that stands in for a value. On the wire it is bytes, in your program it is a dict or object. The parse (loads) and the build (dumps) are the two directions. Everything else about an API is moving these values around.
Keys are strings
In JSON every key is a quoted string and every value has a type. A number is not quoted, a string is. This is why a field that should be a number arrives as a string when someone quotes it, and why you check types after parsing.