python - TypeError:int64 类型的对象不是 JSON 可序列化的
问题描述
我有一个数据框,用于存储澳大利亚城市名称和每个城市的案例数。我正在尝试运行它;但是我得到一个错误
import folium
import pandas as pd
# Make a data frame with dots to show on the map
data = pd.DataFrame({
'lat':[-58, 2, 145],
'lon':[-34, 49, -38],
'name':['Sydney', 'Melbourne', 'Brisbane'],
'value':[4,3,2]
})
data
# Make an empty map
m = folium.Map(location=[20,0], tiles="Mapbox Bright", zoom_start=2)
for i in range(0,len(data)):
folium.Circle(
location=[data.iloc[i]['lon'], data.iloc[i]['lat']],
popup=data.iloc[i]['name'],
radius=data.iloc[i]['value']*10000,
color='crimson',
fill=True,`enter code here`
fill_color='crimson'
).add_to(m)
m.save('mymap.html')
TypeError:int64 类型的对象不是 JSON 可序列化的
解决方案
似乎是 Folium 库的一个问题 - 一种快速的解决方案是将您的整数更改为浮点数 - 否则您可以尝试使用 numpy 库将您的整数从 int64 更改为 int8 等。
data = pd.DataFrame({
'lat':[-58.0, 2.0, 145.0],
'lon':[-34.0, 49.0, -38.0],
'name':['Sydney', 'Melbourne', 'Brisbane'],
'value':[4.0,3.0,2.0]
})
推荐阅读
- javascript - 去掉vue和vuex和js中的当前产品?
- java - 有没有办法只显示与 Spinner 的一项有关的文档而不是其他人一起堆积的文档?
- flutter - 颤振失败将应用程序包上传到播放商店
- python - Django:使用ListView点击修改数据库对象
- postgresql - 如何在 PostgreSQL 中创建自定义范围类型,例如从 1 到 100?
- android - NotificationCompat.BigPictureStyle 显示问题
- c++ - 如何在 C++ 中将向量作为参数传递
- javascript - 编写 React/Framework 组件并构建纯 html/css
- scala - 一个POST方法请求Http4s的正确处理方式
- eclipse - MarketplaceDiscoveryStrategy 失败并出现错误无法完成对 https://marketplace 的请求