Python doesn't need interfaces because it's duck-typed.
If by types you mean type-hints you can have em since 3.5. It's not as pretty as TS or even PHP with strict_types=1 (even though you can describe things that you can't in php) but it works.
What Python has over PHP is strong typing, meta programming, data science and ML libraries. And from what i've seen better overall code quality if you pick random library from pypi compared to packagist
Assuming you mean application level cache you can't really generalize it. In general you don't want to cache anything if you can because cache invalidation is a really hard problem.
It is calculated asynchronously. Response body is lazy and calling .json() on it consumes it and returns promise. That is API of WHATWG fetch and many other JS HTTP clients
https://fetch.spec.whatwg.org/#body-mixin
Not sure what you mean but response.json() is promise that can fail with parse/read error. It's where error handling should happen making it imperative doesn't solve anything