Day7-Python基础学习之json格式和pyecharts折线图

json格式

# json是一种轻量级的数据交互格式,可以按照json指定的格式进行组织和封装数据
# 本质是带有特定格式的字符串
# json格式:1.字典:{"name":"admin","age":18}  2.列表:[{"name":admin,"age:18},{"name":"root","age":16}]
​
# python数据和json数据相互转换
import json
data = [{"name": "库里", "age": 35}, {"name": "詹姆斯", "age": 39}]
json_str = json.dumps(data, ensure_ascii=False)  # 含有中文需要加后面的,表示不用ASCII码进行转换
print(json_str, type(json_str))  # 类型是字符串
​
data2 = {"name": "科比", "age": 4}
json_str = json.dumps(data2, ensure_ascii=False)
print(json_str)
​
# 将json字符串转为python数据类型
str = json.loads(json_str)
print(str, type(str))

pyecharts了解

# pyecharts:做出数据可视化效果图
# 导入pyecharts:pip install pyecharts
# 1.构建折线图
from pyecharts.charts import Line
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts
​
# 得到折线图对象
line = Line()
# 添加x轴数据
line.add_xaxis(["中国", "美国", "英国"])
# 添加y轴数据
line.add_yaxis("GDP",[30, 20, 10])
​
# 设置全局配置项:可在官网查看有哪些配置:pyecharts.org
line.set_global_opts(
    title_opts=TitleOpts(title="GDP展示", pos_left="center", pos_bottom="1%"),
    legend_opts=LegendOpts(is_show=True),
    toolbox_opts=ToolboxOpts(is_show=True),
    visualmap_opts=VisualMapOpts(is_show=True)
)
# 生成图表
line.render()
# 项目文件夹会生成一个render.html的网页页面,点击可查看

案例

# 处理数据
f_usa = open("D:/BaiduNetdiskDownload/资料/可视化案例数据/折线图数据/美国.txt", "r", encoding="utf-8")
f_jp = open("D:/BaiduNetdiskDownload/资料/可视化案例数据/折线图数据/日本.txt", "r", encoding="utf-8")
f_in = open("D:/BaiduNetdiskDownload/资料/可视化案例数据/折线图数据/印度.txt", "r", encoding="utf-8")
usa_data = f_usa.read()
jp_data = f_jp.read()
in_data = f_in.read()
# 去掉不合json规范的开头
usa_data = usa_data.replace("jsonp_1629344292311_69436(", "")
jp_data = jp_data.replace("jsonp_1629350871167_29498(", "")
in_data = in_data.replace("jsonp_1629350745930_63180(", "")
# 去掉不合json格式的结尾
usa_data = usa_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]
usa_dict = json.loads(usa_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)
# 获取trend key
usa_trend_data = usa_dict['data'][0]['trend']
jp_trend_data = jp_dict['data'][0]['trend']
in_trend_data = in_dict['data'][0]['trend']
# 获取日期数据,用于x轴 只对2020年进行处理
usa_x_data = usa_trend_data['updateDate'][:314]
jp_x_data = jp_trend_data['updateDate'][:314]
in_x_data = in_trend_data['updateDate'][:314]
# 获取确诊人数
usa_y_data = usa_trend_data['list'][0]['data'][:314]
jp_y_data = jp_trend_data['list'][0]['data'][:314]
in_y_data = in_trend_data['list'][0]['data'][:314]
​
line1 = Line()
# x轴是公用的
line1.add_xaxis(usa_x_data)
# y轴
line1.add_yaxis("美国确诊人数", usa_y_data, label_opts=LabelOpts(is_show=False))  # 设置无数字显示
line1.add_yaxis("日本确诊人数", jp_y_data, label_opts=LabelOpts(is_show=False))
line1.add_yaxis("印度确诊人数", in_y_data, label_opts=LabelOpts(is_show=False))
​
# 设置全局选项
line1.set_global_opts(
    # 标题
    title_opts=TitleOpts(title="2020年美日印三国确诊人数对比折线图", pos_left="center", pos_bottom="1%")
)
​
line1.render()
​
f_usa.close()
f_jp.close()
f_in.close()

结果图:

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,异常处理是非常重要的一部分。当程序运行时如果出现错误,如果没有异常处理,程序就会崩溃。为了避免这种情况,Python提供了异常处理机制。 在Python中,异常处理语句使用 `try` 和 `except` 关键字来实现。`try` 语句块中包含可能会发生异常的代码,如果这段代码出现了异常,则会跳转到 `except` 语句块中执行异常处理代码。 下面是一个简单的例子: ```python try: num = int(input("请输入一个整数:")) print(10/num) except ZeroDivisionError: print("除数不能为0") except ValueError: print("输入的不是整数") ``` 在上面的代码中,我们尝试将用户输入的字符串转换为整数,并将其用作除数计算 10/num。如果用户输入的是 0,则会触发 ZeroDivisionError 异常。如果用户输入的不是整数,则会触发 ValueError 异常。如果发生异常,则会跳转到对应的 except 语句块中执行处理代码。 除了可以指定具体的异常类型,也可以使用 `except Exception` 来捕获所有异常。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) ``` 在上面的代码中,如果发生任何异常,都会跳转到 `except` 语句块中执行处理代码,并将异常信息打印出来。 除了 `try` 和 `except`,还有 `finally` 关键字,它指定的代码块无论是否发生异常都会执行。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) finally: print("程序执行完毕") ``` 在上面的代码中,无论是否发生异常,都会执行 `finally` 中的代码,即输出“程序执行完毕”。 总之,在Python中,异常处理是非常重要的一部分,它可以有效避免程序崩溃,提高程序的健壮性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值