AttributeError: 'X' object has no attribute 'y'
You accessed an attribute or method that doesn’t exist on that object type.
Seen on:
Python
Meaning
The object is a different type than you think (often None, a str instead of a dict, or a library object whose API changed).
Common causes
- Object is None (
'NoneType' object has no attribute) - Wrong type (string vs dict)
- Library version changed the API
- Typo in attribute name
- Module shadowed by a local file
⚡ Quick fix
print(type(obj))before the line- Check the library version and docs
- Guard for None
Detailed fix by platform
Python
- Use
dir(obj)in a debugger to see available attributes.
Code examples
Inspect the real type
python
resp = requests.get(url).json()
print(type(resp)) # <class 'list'> — not a dict, so resp.get / resp.items fail
print(dir(resp)[:20])Module shadowing
bash
# AttributeError: module 'random' has no attribute 'randint'
ls *.py # random.py in your project shadows the standard library
mv random.py my_random.py && rm -rf __pycache__How to diagnose
- Type — print(type(obj)) right before the failing line
- None — Is it NoneType? Then trace why
- Version — Did the library rename/remove the attribute?
- Shadowing — Local file with the same name as a module?
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 2 Oct 2026