python+json+pyecharts小结

📅 2026/6/27 3:46:26
python+json+pyecharts小结
一、Python 基础必须先掌握1.1 数据类型类型说明示例str字符串文本数据美国.txt、{name:张三}int整数整数1、315、68128float浮点数小数3.14、2.5list列表有序可变序列[北京, 上海, 广东]tuple元组有序不可变序列(北京, 99)dict字典键值对集合{name: 湖北, confirm: 68128}bool布尔True/Falseis_showTrue1.2 文件操作python# 打开文件 open(文件路径, r, encodingUTF-8) # r读w写a追加 # 推荐方式自动关闭 with open(文件.txt, r, encodingUTF-8) as f: data f.read() # 手动方式 f open(文件.txt, r, encodingUTF-8) data f.read() f.close() # 必须手动关闭1.3 字符串操作方法说明示例replace()替换字符串abc.replace(a, A)→Abc[:-2]切片去掉最后2个字符abc[:-2]→a[:315]切片取前315个list[:315]len()获取长度len(abc)→3f-string格式化字符串f日期{date}1.4 列表操作python# 列表推导式重点 data_list [(p[name], p[total][confirm]) for p in children] # 等同于 data_list [] for p in children: data_list.append((p[name], p[total][confirm])) # 常用操作 list.append() # 添加元素 list[:n] # 取前n个 list[-n:] # 取后n个 len(list) # 获取长度 max(list) # 最大值 min(list) # 最小值 sum(list) # 求和1.5 字典操作python# 获取值 data_dict[key] # 直接获取 data_dict.get(key) # 安全获取不存在返回None # 遍历字典 for key, value in data_dict.items(): print(key, value) # 嵌套字典访问 us_dict[data][0][trend][confirm]1.6 函数定义pythondef 函数名(参数1, 参数2): # 函数体 return 返回值 # 示例 def load_data(file_path, callback_name): with open(file_path, r, encodingUTF-8) as f: data f.read() data data.replace(callback_name, ) data data[:-2] return json.loads(data)1.7 异常处理pythontry: data json.loads(json_str) except json.JSONDecodeError: print(JSON格式错误) except FileNotFoundError: print(文件不存在) finally: print(执行完毕)二、JSON 数据处理核心2.1 JSON 基础语法JSON 类型Python 对应示例对象{}字典dict{name: 张三}数组[]列表list[北京, 上海]字符串字符串strhello数字int/float123、3.14布尔booltrue/falsenullNonenull2.2 JSONP 格式处理python# JSONP 格式 jsonp_1629344292311_69436({ data: [...] }); # 处理步骤 data data.replace(jsonp_1629344292311_69436(, ) # 去掉开头 data data[:-2] # 去掉结尾的 ); data_dict json.loads(data) # 转换为字典2.3 json 模块核心方法方法说明示例json.loads()JSON字符串 → Python对象json.loads({a:1})json.dumps()Python对象 → JSON字符串json.dumps({a:1})json.load()从文件读取JSONjson.load(f)json.dump()写入JSON到文件json.dump(data, f)2.4 数据提取模式python# 模式1折线图数据结构 data_dict[data][0][trend][date] # 日期列表 data_dict[data][0][trend][confirm] # 确诊列表 # 模式2地图数据结构 data_dict[areaTree][0][children] # 省份列表 province[name] # 省份名 province[total][confirm] # 确诊数三、Pyecharts 基础3.1 安装bashpip install pyecharts3.2 核心模块模块说明from pyecharts.charts import *图表类Line, Map, Bar, Pie...from pyecharts import options as opts配置选项from pyecharts.options import *具体配置项3.3 通用三步曲python# 第1步创建图表对象 chart 图表类型() # 第2步添加数据 chart.add_xaxis(x_data) chart.add_yaxis(系列名, y_data) # 第3步生成HTML chart.render(文件名.html)四、Pyecharts 折线图Line4.1 核心配置pythonLine( init_optsopts.InitOpts( width1200px, # 宽度 height600px, # 高度 themelight # 主题 ) )4.2 常用方法方法说明.add_xaxis()添加x轴数据.add_yaxis()添加y轴数据.set_global_opts()设置全局配置.set_series_opts()设置系列配置.render()生成HTML文件4.3 全局配置项配置项说明示例TitleOpts标题title图表标题TooltipOpts鼠标悬停提示triggeraxisLegendOpts图例pos_top5%AxisOpts坐标轴name日期DataZoomOpts缩放滑块range_start0MarkPointOpts标记点type_maxMarkLineOpts标记线type_average4.4 链式调用pythonline ( Line() .add_xaxis(x_data) .add_yaxis(系列1, y1_data) .add_yaxis(系列2, y2_data) .set_global_opts(...) .set_series_opts(...) )五、Pyecharts 地图Map5.1 核心方法方法说明.add(名称, 数据, 地图类型)添加地图数据.set_global_opts()设置全局配置5.2 数据格式python# 数据格式[(省份名, 数值), ...] data_list [ (北京, 99), (上海, 199), (广东, 499) ]5.3 视觉映射配置pythonVisualMapOpts( is_showTrue, # 显示图例 is_piecewiseTrue, # 分段显示 pieces[ # 分段规则 {min: 1, max: 99, label: 1~99人, color: #CCFFFF}, {min: 100, label: 100人, color: #CC3333} ] )5.4 省份名称注意事项python# pyecharts 需要完整省份名称 湖北 ❌ → 湖北省 ✅ 北京 ❌ → 北京市 ✅ 广西 ❌ → 广西壮族自治区 ✅ 新疆 ❌ → 新疆维吾尔自治区 ✅六、Pyecharts 其他图表6.1 柱状图Barpythonfrom pyecharts.charts import Bar bar Bar() bar.add_xaxis([A, B, C]) bar.add_yaxis(系列名, [10, 20, 30]) bar.render(柱状图.html)6.2 饼图Piepythonfrom pyecharts.charts import Pie pie Pie() pie.add(, [(A, 10), (B, 20), (C, 30)]) pie.render(饼图.html)6.3 散点图Scatterpythonfrom pyecharts.charts import Scatter scatter Scatter() scatter.add_xaxis([1, 2, 3, 4, 5]) scatter.add_yaxis(系列名, [10, 25, 30, 45, 60]) scatter.render(散点图.html)七、数据处理技巧7.1 自定义函数复用代码pythondef load_data(file_path, callback_name): with open(file_path, r, encodingUTF-8) as f: data f.read() data data.replace(callback_name, ) data data[:-2] return json.loads(data) # 一行读取一个国家数据 us_dict load_data(美国.txt, jsonp_xxx()7.2 批量处理多个文件pythonfiles {美国: jsonp_xxx(, 日本: jsonp_yyy(} data_dicts {} for name, callback in files.items(): data_dicts[name] load_data(f{name}.txt, callback)7.3 数据验证python# 检查数据长度 print(f数据长度{len(data)}) # 查看前几条 print(data[:5]) # 检查数据类型 print(type(data)) # 检查键是否存在 if key in data_dict: print(键存在)八、常见错误及解决方案错误类型原因解决方案FileNotFoundError文件路径错误检查路径和文件名JSONDecodeErrorJSON格式不正确检查是否去除JSONP包装KeyError字典键不存在print(data_dict.keys())查看所有键IndexError列表索引超出范围检查列表长度len(list)TypeError类型错误检查数据类型type()NameError变量未定义检查变量是否已赋值图表显示NaN省份名称不匹配使用完整省份名【结合今日所学让ai总结错误并记录下来利于下次翻阅与复习】