Since you are working with an interactive version of python, you fail to mention which namespace is being referenced when executing globals(). In a multi module application (most applications) merely executing globals() at the interactive prompt gives different results depending on where it is executed. The truth is that globals() is accessing the "current" namespace or "current" module. Python took a perfectly good word - "globals" - and is using that word to really mean "module" scope. Python, does not truly have anything resembling "global" variables or "global" functions as defined in other programming languages. This difference is an ongoing source of confusion and quirky programming errors. I suggest you consder multi module applications when you speak of "globals"...
Hi, may I ask what other languages you were referring to when you said "python doesn't truly have anything resembling global variables as defined in other programming languages".
The namespace is a Python dictionary, which contains key-value pairs, which are variable identifiers as keys and their values. That it looks like JSON is just because it's logically the same structure, and the print function in Python is apparently overloaded to display dicts like this.