по моему опыту, фолиум очень чувствителен к одиночным кавычкам ('
).
Причина в том, что folium генерирует javascript и преобразует ваши строки в строки javascript, которые заключаются в одинарные кавычки. Однако он не исключает ни одной кавычки, содержащейся в строке (даже не уверен, что это возможно в js), поэтому наличие одинарной кавычки в строке имеет тот же эффект, что и не закрытие строки в python.
Решение: замените все одинарные кавычки в строках на обратные кавычки (`) или (лучше) используйте ответ @Bob Haffner.
Редактировать: по чистой случайности я наткнулся на другое решение только сейчас. Очевидно, folium.Popup
имеет аргумент parse_html
. Используйте это так:
folium.Marker([x,y], popup=folium.Popup("Foo'Bar",parse_html=True)).add_to(map)
однако я не смог бы заставить его работать без ошибки unicodeescape. тем не менее, он существует, предположительно для этой цели, и может работать на вас.
Редактировать 2: Как мне сказали на github, эта проблема будет исправлена в следующем выпуске. Ссылка: Фолиум # 962