Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
How to resolve the mypy error "Returning Any from function declared to return 'Dict[str, Any]'" in Python?
I have a function that loads JSON data and is declared to return a dictionary with string keys and values of any type (Dict[str, Any]). However, mypy is raising an error stating that I am returning Any instead of a dictionary. I found a suggestion to create a new variable and assign the result of json.load(json_data) to it, but I would like to know if there is another way to resolve this error without creating a new variable.
def load_json_data(filepath: str) -> Dict[str, Any]:
with open(filepath) as json_data:
return json.load(json_data)
1 answer
You can cast the result of the expression to the desired type
def load_json_data(filepath: str) -> Dict[str, Any]:
with open(filepath) as json_data:
return cast(Dict[str, Any], json.load(json_data))
You can also just ignore the error
def load_json_data(filepath: str) -> Dict[str, Any]:
with open(filepath) as json_data:
return json.load(json_data) # type: ignore[no-any-return]
0 comment threads