第十章——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\> ![](https://i-blog.csdnimg.cn/direct/ab9a0b5f4419481f985ed06700b65021.png)

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

还有可能的解决方案:

你遇到的是典型的 网络超时错误,主要原因是从官方 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日


相关推荐
___波子 Pro Max.2 小时前
python list去重
python·list
狐凄4 小时前
Python实例题:基于边缘计算的智能物联网系统
python·物联网·边缘计算
W说编程4 小时前
算法导论第二十四章 深度学习前沿:从序列建模到创造式AI
c语言·人工智能·python·深度学习·算法·性能优化
动能小子ohhh5 小时前
html实现登录与注册功能案例(不写死且只使用js)
开发语言·前端·javascript·python·html
Blue桃之夭夭5 小时前
Python爬虫(六):Scrapy框架
爬虫·python·scrapy
大模型铲屎官5 小时前
【深度学习-Day 31】CNN基石:彻底搞懂卷积层 (Convolutional Layer) 的工作原理
人工智能·pytorch·python·深度学习·机器学习·cnn·llm
struggle20256 小时前
DeepForest开源程序是用于 Airborne RGB 机器学习的 Python 软件包
开发语言·python
杜大哥6 小时前
Python:.py文件如何变成双击可执行的windows程序?(版本1)
开发语言·windows·python
四川兔兔7 小时前
Pytorch 实战四 VGG 网络训练
人工智能·pytorch·python·深度学习·机器学习·回归·vgg网络