google-drive-api - 如何将 folium map 直接保存到谷歌驱动器

标签 google-drive-api folium

我正在编写一个脚本,每天自动更新 google drive 中的一些 folium map 。

我让整个事情在本地正常工作,没有问题,除了一件事:因为这将每天在远程服务器上自动运行,我不想先将创建的 map 保存在服务器中然后再上传他们到谷歌驱动器。如果可能的话,我想将 map 创建为内存中的某种文件对象,将它们上传到谷歌驱动器,仅此而已……而不必在服务器上创建多个物理 map 文件。这可能吗?如果是,如何?

这是我的代码,在放置标记和集群之后,我将 map 保存为文件系统中的 html 文件(这是一个循环,因为我需要更新多个城市的 map ):

    folium.LayerControl().add_to(mymap) 
    mymap.add_child(MeasureControl()) 
    mymap.render()
    mymap.save('leads_'+city+'_'+code+'.html')

然后,对于每张 map ,这是将 html map 保存到谷歌驱动器中的代码(使用 pydrive):

gauth = GoogleAuth()
gauth.LocalWebserverAuth()
drive = GoogleDrive(gauth)

file1 = drive.CreateFile({'parents': [{'id': 'xxxfolder_idxxx'}]})
file1.SetContentFile('leads_'+city+'_'+code+'.html')
file1.Upload()

正如我所说,这一切都很好,但我不想用 map 文件使服务器文件系统饱和。 有没有一种无需先将 map 保存在本地文件系统中即可执行此操作的方法?

最佳答案

如果你打算直接将html文件保存到驱动器(不保存到本地),那么你可以试试这个:

file1 = drive.CreateFile({'parents': [{'id': 'xxxfolder_idxxx'}], 'mimeType': 'text/html', 'name': 'leads_'+city+'_'+code+'.html'})
# access the html string of the object and set it via SetContentString
file1.SetContentString(m.get_root().render())
file1.Upload()

引用:

关于google-drive-api - 如何将 folium map 直接保存到谷歌驱动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72408474/

相关文章:

javascript - 刷新比。重新加载(无法调用未定义的方法 'authorize')GAPI

javascript - 链接到谷歌驱动器中的共享文件夹,该文件夹会自动打开第一个元素

javascript - 将 JavaScript 添加到 Folium map

github - 如何查看 GitHub 上 folium 保存的 html?

android - 在Android中将备份同步到Google Drive

google-bigquery - Bigquery 使用 Terraform 从 Sheet 文件创建表

javascript - 使用 Google Drive Rest API 更新文件名

python - 在 Internet Explorer 的 Jupyter Notebook 中不显示 Folium 热图

python - 在 django 上使用 folium 的最佳实践

找不到 Python 3.6 模块 : Folium