第十章——8天Python从入门到精通【itheima】-99~101-Python基础综合案例-数据可视化(案例介绍=JSON格式+pyecharts简介)

目录

99节-案例介绍

1.第十章可视化图表的学习目标

【1】折线图

【2】地图

【3】动态柱状图

2.数据可视化学习目标所应用到的数据及相关技术栈

3.综合案例的学习目标

100节------JSON数据格式

1.什么是JSON?

2.JSON有什么用?

3.JSON的数据格式

4.Python数据和JSON数据的相互转化

5.小节总结

101节------pyecharts模块介绍

1.介绍:pyecharts模块

2.查看并使用下载pyecharts

【1】打开pyecharts官网

【2】打开pyecharts.gallery.org

3.如何安装pyecharts这个模块?【pip下载并且检验】

一、核心问题:网络连接慢或中断

[1. 使用国内镜像源(最有效方案)](#1. 使用国内镜像源(最有效方案))

[2. 临时增加超时时间(应急方案)](#2. 临时增加超时时间(应急方案))

[二、辅助优化:更新 pip 和检查网络](#二、辅助优化:更新 pip 和检查网络)

[1. 更新 pip 到最新版本](#1. 更新 pip 到最新版本)

[2. 检查网络环境](#2. 检查网络环境)

三、进阶方案:配置永久镜像源

四、其他可能的问题

[1. 代理设置冲突](#1. 代理设置冲突)

[2. Python 环境问题](#2. Python 环境问题)

五、验证安装结果

4.小节总结

好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:

李明博致年轻技术探索者的信


99节-案例介绍

1.第十章可视化图表的学习目标

【1】折线图

【2】地图

【3】动态柱状图

2.数据可视化学习目标所应用到的数据及相关技术栈

3.综合案例的学习目标


100节------JSON数据格式

1.什么是JSON?

本质上是具有特定格式的字符串。在 各种编程语言中流通的数据格式,左右逢源的多面手!!!是非常良好的数据中转格式。

2.JSON有什么用?

充当了"中转站"的功能!!!

3.JSON的数据格式

十分像Python中的字典和内嵌字典的列表。只要学会了Python中的字典和内嵌字典的列表,利用一些方法,就可以把用Python定义好的数据类型(或者是JSON类型转换成Python的数据类型),无缝衔接的相互完美转换!
JSON的数据格式先不用学,格式的形式和Python很像,Python牛逼!make python great again!!!

4.Python数据和JSON数据的相互转化

一开始,因为内嵌字典的列表转json格式,涉及到编码问题,中文出不来,会出现一系列的乱码。

复制代码
在转换成json格式时,传入列表数据的同时,添加ensure_ascii=False这个参数可解决乱码问题。

ensure_ascii=False,这里的意思是:不使用ASCII码去转换他,把内容直接输出出去;参数如果为True的话,就会转换成Unicode的字符了。

python 复制代码
# 100节------JSON数据格式

"""
演示JSON数据和Python数据的相互转换
"""

import json

# 准备一个列表,列表内每一个元素都是字典,将其转换为JSON
data=[{"name":"张三","age":11},{"name":"李四","age":12},{"name":"王五","age":13}]
# ensure_ascii=False,这里的意思是:不使用ASCII码去转换他,把内容直接输出出去;参数如果为True的话,就会转换成Unicode的字符了。
json_str=json.dumps(data,ensure_ascii=False)  #在转换成json格式时,传入列表数据的同时,添加ensure_ascii=False这个参数可解决乱码问题
print(type(json_str))
print(json_str)
# <class 'str'>
# [{"name": "张三", "age": 11}, {"name": "李四", "age": 12}, {"name": "王五", "age": 13}]


# 准备字典,将字典转换为JSON
print("----------------------分隔线1----------------------")
d={"name":"周杰伦","addr":"中国台北"}
json_str=json.dumps(d,ensure_ascii=False)
print(type(json_str))
print(json_str)
# ----------------------分隔线1----------------------
# <class 'str'>
# {"name": "周杰伦", "addr": "中国台北"}


# 将JSON字符串转换为Python------内嵌字典的列表
print("----------------------分隔线2----------------------")
# 如果没有加上引号,他是列表,不是字符串,而json数据格式本质上是字符串,所以没有引号就会报错:
# TypeError: the JSON object must be str, bytes or bytearray, not list
s='[{"name": "张三", "age": 11}, {"name": "李四", "age": 12}, {"name": "王五", "age": 13}]'
l=json.loads(s)
print(type(l))
print(l)
# ----------------------分隔线2----------------------
# <class 'list'>
# [{'name': '张三', 'age': 11}, {'name': '李四', 'age': 12}, {'name': '王五', 'age': 13}]


# 将JSON字符串转换为Python------字典
print("----------------------分隔线3----------------------")
d='{"name":"周杰伦","addr":"中国台北"}'
dict=json.loads(d)
print(type(dict))
print(dict)
# <class 'dict'>
# {'name': '周杰伦', 'addr': '中国台北'}

5.小节总结


101节------pyecharts模块介绍

1.介绍:pyecharts模块

因为pyecharts是由百度的团队去构建的,所以pyecharts本身是含有丰富的中文文档的。唉,不容易啊!总算看到通报开发的对象了!!

2.查看并使用下载pyecharts

【1】打开pyecharts官网

【2】打开pyecharts.gallery.org

这是pyecharts这个框架的一个画廊。

作用:支持多种图表,展现图表的画廊,我们可以查看并想方设法的去查看和使用

也就是供我们参观了解学习的画廊------gallery.pyecharts.org。可以参考效果图,找到你想要的图表,可复制上面相应的代码,更改一些参数,就可以基于pyecharts的gallery,创新出你自己的可视化图表。

3.如何安装pyecharts这个模块?【pip下载并且检验】

如下代码:这是下载时网络超时:

Microsoft Windows 版本 10.0.26100.4349

(c) Microsoft Corporation。保留所有权利。

C:\Users\gpy13>pip install pyecharts

Collecting pyecharts

Downloading pyecharts-2.0.8-py3-none-any.whl.metadata (1.6 kB)

Collecting jinja2 (from pyecharts)

Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)

Collecting prettytable (from pyecharts)

Downloading prettytable-3.16.0-py3-none-any.whl.metadata (33 kB)

INFO: pip is looking at multiple versions of pyecharts to determine which version is compatible with other requirements. This could take a while.

Collecting pyecharts

Downloading pyecharts-2.0.7-py3-none-any.whl.metadata (1.4 kB)

Downloading pyecharts-2.0.6-py3-none-any.whl.metadata (1.3 kB)

Downloading pyecharts-2.0.5-py3-none-any.whl.metadata (1.3 kB)

Downloading pyecharts-2.0.4-py3-none-any.whl.metadata (1.3 kB)

Downloading pyecharts-2.0.3-py3-none-any.whl.metadata (1.3 kB)

Downloading pyecharts-2.0.2-py3-none-any.whl.metadata (1.3 kB)

Downloading pyecharts-2.0.1-py3-none-any.whl.metadata (1.3 kB)

INFO: pip is still looking at multiple versions of pyecharts to determine which version is compatible with other requirements. This could take a while.

Downloading pyecharts-2.0.0-py3-none-any.whl.metadata (1.3 kB)

Downloading pyecharts-1.9.1-py3-none-any.whl.metadata (1.3 kB)

Downloading pyecharts-1.9.0-py3-none-any.whl.metadata (1.1 kB)

Downloading pyecharts-1.8.1-py3-none-any.whl.metadata (1.1 kB)

Downloading pyecharts-1.8.0-py3-none-any.whl.metadata (1.1 kB)

INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.

Downloading pyecharts-1.7.1-py3-none-any.whl.metadata (1.1 kB)

Downloading pyecharts-1.7.0-py3-none-any.whl.metadata (1.1 kB)

Downloading pyecharts-1.6.2-py3-none-any.whl.metadata (1.1 kB)

Downloading pyecharts-1.6.1-py3-none-any.whl.metadata (1.1 kB)

Downloading pyecharts-1.6.0-py3-none-any.whl.metadata (1.0 kB)

Downloading pyecharts-1.5.1-py3-none-any.whl.metadata (1.0 kB)

Downloading pyecharts-1.5.0-py3-none-any.whl.metadata (1.0 kB)

Downloading pyecharts-1.4.0-py3-none-any.whl.metadata (1.0 kB)

Downloading pyecharts-1.3.1-py3-none-any.whl.metadata (1.0 kB)

Downloading pyecharts-1.2.1-py3-none-any.whl.metadata (979 bytes)

Collecting MarkupSafe>=2.0 (from jinja2->pyecharts)

Downloading MarkupSafe-3.0.2-cp312-cp312-win_amd64.whl.metadata (4.1 kB)

Collecting wcwidth (from prettytable->pyecharts)

Downloading wcwidth-0.2.13-py2.py3-none-any.whl.metadata (14 kB)

Downloading pyecharts-1.2.1-py3-none-any.whl (144 kB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 144.1/144.1 kB 9.6 kB/s eta 0:00:00

Downloading jinja2-3.1.6-py3-none-any.whl (134 kB)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━ 122.9/134.9 kB 5.2 kB/s eta 0:00:03

ERROR: Exception:

Traceback (most recent call last):

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\urllib3\response.py", line 438, in _error_catcher

yield

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\urllib3\response.py", line 561, in read

data = self._fp_read(amt) if not fp_closed else b""

^^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\urllib3\response.py", line 527, in _fp_read

return self._fp.read(amt) if amt is not None else self._fp.read()

^^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 98, in read

data: bytes = self.__fp.read(amt)

^^^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\http\client.py", line 479, in read

s = self.fp.read(amt)

^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\socket.py", line 707, in readinto

return self._sock.recv_into(b)

^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\ssl.py", line 1252, in recv_into

return self.read(nbytes, buffer)

^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\ssl.py", line 1104, in read

return self._sslobj.read(len, buffer)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TimeoutError: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\cli\base_command.py", line 180, in exc_logging_wrapper

status = run_func(*args)

^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\cli\req_command.py", line 245, in wrapper

return func(self, options, args)

^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\commands\install.py", line 377, in run

requirement_set = resolver.resolve(

^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 179, in resolve

self.factory.preparer.prepare_linked_requirements_more(reqs)

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\operations\prepare.py", line 552, in prepare_linked_requirements_more

self._complete_partial_requirements(

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\operations\prepare.py", line 467, in _complete_partial_requirements

for link, (filepath, _) in batch_download:

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\network\download.py", line 183, in call

for chunk in chunks:

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\cli\progress_bars.py", line 53, in _rich_progress_bar

for chunk in iterable:

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_internal\network\utils.py", line 63, in response_chunks

for chunk in response.raw.stream(

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\urllib3\response.py", line 622, in stream

data = self.read(amt=amt, decode_content=decode_content)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\urllib3\response.py", line 560, in read

with self._error_catcher():

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\contextlib.py", line 158, in exit

self.gen.throw(value)

File "C:\Users\gpy13\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip\_vendor\urllib3\response.py", line 443, in _error_catcher

raise ReadTimeoutError(self._pool, None, "Read timed out.")

pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

notice A new release of pip is available: 24.0 -> 25.1.1

notice To update, run: python.exe -m pip install --upgrade pip

C:\Users\gpy13>

改用清华大学的镜像网站,安装下载很快,并且是一次性成功:

还有可能的解决方案:

你遇到的是典型的 网络超时错误,主要原因是从官方 PyPI 源下载包时网络连接不稳定。以下是分步解决方案,按优先级排序:

一、核心问题:网络连接慢或中断

1. 使用国内镜像源(最有效方案)

官方 PyPI 服务器在国外,国内访问易超时,换成清华镜像源:

bash

复制代码
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

原理:清华镜像源在国内,下载速度快且稳定,几乎能解决 90% 的超时问题。

2. 临时增加超时时间(应急方案)

若镜像源仍超时,可增加网络请求的超时时间:

bash

复制代码
pip install pyecharts --default-timeout=1000

说明--default-timeout=1000 表示将超时时间设为 1000 秒(默认约 15 秒),给网络更多响应时间。

二、辅助优化:更新 pip 和检查网络

1. 更新 pip 到最新版本

你的 pip 版本是 24.0,提示可更新到 25.1.1,新版可能修复网络相关问题:

bash

复制代码
python.exe -m pip install --upgrade pip
2. 检查网络环境
  • 确认网络连接稳定(可访问其他网站测试)。
  • 尝试切换网络(如手机热点),排除校园网 / 公司网的限制。
  • 关闭可能干扰网络的软件(如防火墙、代理工具)。

三、进阶方案:配置永久镜像源

避免每次安装都输入镜像参数,可设置永久配置:

  1. 创建 pip 配置文件(若不存在则新建):

    • Windows:在C:\Users\你的用户名\pip\pip.ini中添加:

      ini

      复制代码
      [global]
      index-url = https://pypi.tuna.tsinghua.edu.cn/simple
      [install]
      trusted-host = pypi.tuna.tsinghua.edu.cn
    • Linux/macOS:在~/.pip/pip.conf中添加相同内容。

  2. 验证配置生效

    执行pip config list,若显示global.index-url = https://pypi.tuna.tsinghua.edu.cn/simple,则配置成功。

四、其他可能的问题

1. 代理设置冲突

若公司 / 学校网络需要代理,需设置 pip 代理:

bash

复制代码
pip config set global.proxy http://代理地址:端口号
pip config set global.https-proxy https://代理地址:端口号

(若无需代理,可执行pip config unset global.proxy取消)。

2. Python 环境问题
  • 确认 Python 安装正确,且pip命令指向当前 Python 环境(可执行python --versionpip --version查看版本是否一致)。
  • 若使用虚拟环境,确保已激活(activate命令)。

五、验证安装结果

成功安装后,在 Python 中测试:

python

复制代码
import pyecharts
print(pyecharts.__version__)  # 输出版本号即成功

按上述步骤操作,基本能解决超时问题。如果仍失败,可提供新的报错信息,我会进一步排查!

用清华大学的镜像网站,在命令提示符的窗口下载,写如下的命令:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts。

安装成功后,进行import 导入,看看导入是否成功:

可以了,这样就下载和导入都成功了!!!!!!!!!!

4.小节总结


好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:

李明博致年轻技术探索者的信

亲爱的技术探索者朋友:

展信安!

拜读你的学习笔记与生活感悟,我深感欣喜。你在技术领域的专注与热忱,让我想起年轻时在商界拼搏的岁月------每一份扎实的积累,终将成为人生大厦的基石。

关于技术

你钻研JSON与pyecharts的细致态度令人钦佩。技术如同治国,需严谨的逻辑与开放的视野并存。JSON作为数据沟通的桥梁,恰似外交中的共识语言;而可视化图表则是展现"国家蓝图"的窗口。你在代码中注入的ensure_ascii=False这类智慧,恰如政策制定时对本土文化的尊重------唯有立足根本,方能行稳致远。

关于健康

你提及的身体信号是生命的低语。我曾清晨五点健身数十年,深知强健体魄是应对挑战的资本。请谨记:代码可重构,健康不可逆。规律作息与科学运动,如同国家基础设施的维护------短暂投入,长久受益。

关于家庭

你化解父母矛盾的方式展现超越年龄的成熟。家庭如微缩的治国现场:冲突需"暂避锋芒",和解需"求同存异"。当年我处理朝韩关系时,亦深谙"冷静清醒"四字的分量------情感如水,疏导胜于拦截。

关于读书

《富爸爸穷爸爸》的思考印证了你的洞察力。你从情趣用品店悟出"资产"真谛,恰似我从垃圾回收业看到循环经济的未来。真正的智者,总能在平凡处开采思想的黄金。读书不必求速,"驽马十驾"的韧性,终将铸就思维的高度。

赠青年之言

"代码写的是机器语言,人生写的是选择语言。

键盘可敲出万千程序,唯有用健康为底座、家庭为编译器、知识为算法,

方能运行出无悔的人生程序。"

望你继续以代码丈量世界,以温情拥抱生活。当技术之理性与人文之温度交融,你笔下的博客必将成为数字时代独特的灯塔。

谨祝

健笔凌云,家和人安

李明博 谨启

2025年6月19日


相关推荐
qq5918406851 小时前
uiautomator2自动化安卓手机操作
python
80s7771 小时前
动态代理和静态代理的区别,动态代理怎么提高网络安全性
python
YangYang9YangYan2 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
大大大大晴天2 小时前
OpenMetadata VS DataHub VS Atlas VS Gravitino
大数据
niucloud-admin3 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github
小叶肥辉3 小时前
LangChain链和LangGraph图的学习笔记【三】——分别用langchain_openai库和langchain_community库调用大模型
笔记·python·langchain
2401_873479404 小时前
IP属地为什么有时显示外省?用IP查询工具核查动态分配、运营商出口与GeoIP库
python·tcp/ip·ip
Qyr995 小时前
2026全球汽车碳刷行业发展全景分析报告
大数据
OKkankan6 小时前
LangChain 能力详解!:输出解析、RAG、向量数据库与 Retriever 检索器
数据结构·python·langchain·ai应用
蓝速科技6 小时前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发