导入数据,并且以utf-8为编码格式,但是以上代码报错,求解答


import json
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
import plotly
file_yq = r'D:\网易云\plotly\yq-data.xlsx'
file_gs = r'D:\网易云\plotly\china_geo.json'
gs_data = open(file_yq,'r',encoding='utf-8')
gs_data = gs_data.read()
gs_data = json.loads(gs_data)
df = pd.read_excel(gs_data,index_col=0)

想实现:导入数据,并且以utf-8为编码格式,但是以上代码报错,求解答

“该回答引用ChatGPT”

可参考下面的解决方案,还请测试代码的可用性,如果可行 ,还请点击 ,采纳,感谢支持!

import json
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
import plotly

# 读取 Excel 数据文件
file_yq = r'D:\网易云\plotly\yq-data.xlsx'
df = pd.read_excel(file_yq, index_col=0)

# 读取地图数据文件
file_gs = r'D:\网易云\plotly\china_geo.json'
with open(file_gs, 'r', encoding='utf-8') as f:
    gs_data = json.load(f)

# 创建地图
fig = px.choropleth(df, geojson=gs_data, color='数值',
                    locations='省份', featureidkey='properties.name',
                    color_continuous_scale='Viridis',
                    title='全国省份数据分布图')
fig.update_layout(margin={"r":0,"t":0,"l":0,"b":0})

# 显示图表
plotly.offline.iplot(fig)


这段代码中读入了一个 Excel 文件 yq-data.xlsx,并以地图的形式显示了数据分布情况。如果您的数据格式与代码中的不一致,请根据您的数据调整代码中的变量名称。

编码问题,被序列化为JS的字符串中包含无法编码的字符

您的代码有以下错误:

打开文件是Excel文件,而不是json文件,所以打开文件的方式是错误的。
您试图用json.loads加载Excel文件,而不是json文件,这将导致错误。
正确的代码应该是这样的:

img