Description
Describe the bug
Very small bug, but there has been a small change in how empty values are handled and updating to the latest folium has affected how popups are displayed.
When creating a geojsonpopup using the fields keywords and a geodataframe, if a cell was empty the the content used to be empty. This allowed me to use simple css to hide row when empty:
.leaflet-popup-pane tr:has(td:empty){
display: none;
}
This behaviour was useful, as it was a simple way to add large amounts of data if present, but also simplify the output when no data available.
Since updating, the empty cells now have the string 'null' inside, breaking the styling. See example image:
Related to #1858 ?
To Reproduce
update to latest version of folium
m = Map()
gdf= gpd.read_file(geopackagePath, layer='groupedData')
data = gdf.drop('geometry', axis=1)
popup = folium.GeoJsonPopup(fields=data.columns.tolist(), labels=True, class_name="mystyle")
mapDataFrame= gdf.copy()
mapDataFrame['index'] = mapCopy.index
geojson = folium.GeoJson(data=mapDataFrame, popup=popup)
m.add_child(geojson)
[ Include a data sample or link to your data if necessary to run the code ]
Expected behavior
Empty cell should be empty in the popup
Environment (please complete the following information):
- Browser chrome, firefox
- html files
- Python version sys.version_info(major=3, minor=11, micro=9, releaselevel='final', serial=0)
- folium version: 0.17.0
- branca version:0.7.2
Possible solutions
I haven't found a simple solution yet. I had a look at the source, but not sure where the actual change occurred.