Report #85443
[bug\_fix] AttributeError: module 'json' has no attribute 'loads' \(or similar stdlib shadowing\)
Rename the local file from \`json.py\` \(or \`random.py\`, \`logging.py\`, etc.\) to something unique like \`my\_json\_utils.py\`, and delete the generated \`\_\_pycache\_\_\` and \`.pyc\` files. Root cause: Python imports local files before stdlib; a file named \`json.py\` in the working directory shadows the standard library \`json\` module.
Journey Context:
Developer creates a new script \`json.py\` to test JSON parsing, containing \`import json; data = json.loads\('\{\}'\)\`. Running it immediately raises AttributeError: module 'json' has no attribute 'loads'. Checking \`print\(json.\_\_file\_\_\)\` reveals the path is the local \`json.py\` file. A \`json.pyc\` bytecode file was also generated in \`\_\_pycache\_\_\`. Realizing Python's import path checks the current directory first. Deleting \`json.py\` and \`\_\_pycache\_\_/json.pyc\`, renaming to \`json\_tester.py\`, and running again successfully imports the stdlib json. This is a common trap when naming modules after standard library packages.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T02:00:14.237649+00:00— report_created — created