Type Error: 'NoneType' object is not subscriptable

Hello Streamlit Community!
I just released this geospatial weather application that can provide a weather report at each station .

When looking at the application on streamlit launched locally, there is only one error that shows initially if an object is not clicked. This is the error:

TypeError: ‘NoneType’ object is not subscriptable

This error goes away after selecting an object, but I believe the issue stems from the Limit Data Return on streamlit-folium,
streamlit-folium documentation: Limit Data Return · Streamlit

Any feedback would be much appreciated.

Requirements file

Links

Hi @theeliad, welcome to the forum! :wave: :balloon:

Here’s the entire traceback when running the app locally:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 565, in _run_script
    exec(code, module.__dict__)
  File "/Users/adsdsa/Downloads/streamlit-misc/Geospatial_Weather_App/main.py", line 115, in <module>
    app()
  File "/Users/adsdsa/Downloads/streamlit-misc/Geospatial_Weather_App/main.py", line 110, in app
    detailed_forecast_df = get_forecast_periods_df(output)
  File "/Users/adsdsa/Downloads/streamlit-misc/Geospatial_Weather_App/get_forecast.py", line 20, in get_forecast_periods_df
    latlon_pointdata = api_connector.get_point(output['last_object_clicked']['lat'],
TypeError: 'NoneType' object is not subscriptable

From the traceback, it’s clear that output['last_object_clicked'] is a NoneType object. You have to account for the condition when no object has been clicked yet.

The simplest solution would be to execute get_forecast_periods_df(output) if output["last_object_clicked"] is not None. Perhaps here:

with row1_col2:
    st.write(output)
with st.expander("Click here to expand and view weather forecast"):
    if output["last_object_clicked"] is not None:
        detailed_forecast_df = get_forecast_periods_df(output)
        st.dataframe(detailed_forecast_df)

Thank you so much for assisting me with fixing NoneType error.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.