It's interesting to see how differently these are all implemented. I guess it depends on what's at the other side of the api and how much work the developer wants to put in to data conversion.
When you flick through the first few examples you see that the result from querying a lib could be a nested dict, a bunch of objects or an lxml.etree. Every time you approach a new api, even with the help of a library so you don't have to deal with the transport, you still need to learn a unique set of data structures.