基于python+MySQL的新冠肺炎疫情数据分析及可视化

项目环境:pycharm python3.9 数据库:MySQL8

第三方库:urllib、urllib3、requests、traceback、pymysql、json、jieba、wordcloud、requests、sys、time、flask库,做好前期准备。

项目设计文档目录:

编写代码(部分重要代码)

这里用url获取响应从腾讯新闻中获取数据,并获取的是text字节形式的内容。代码中url是获取数据的目标网页,这边是获取了腾讯的两个网页。

res1 = json.loads(r1.text)

  res2 = json.loads(r2.text)

  data_all1 = json.loads(res1["data"])

  data_all2 = json.loads(res2["data"])

这里是将网页信息从转化为字典text,方便我们进行抓取数据。Json加载data中的数据到新的变量dataall。

def get_conn():

    # 建立连接

    conn = pymysql.connect(host="###", user="###", password="###", db="cov", charset="utf8")

    # c创建游标

    cursor = conn.cursor()

    return conn, cursor

def close_conn(conn, cursor):

    if cursor:

        cursor.close()

    if conn:

        conn.close()

建立与数据库(cov)的连接,使得能从数据库中数据在运行图中显示

def update_hotsearch():

    cursor = None

    conn = None

    try:

        context = get_baidu_hot()

        print(f"{time.asctime()}开始更新数据")

        conn,cursor = get_conn()

        sql = "insert into hotsearch(dt,content) values(%s,%s)"

        ts = time.strftime("%Y-%m-%d %X")

        for i in context:

            cursor.execute(sql,(ts,i))

        conn.commit()

        print(f"{time.asctime()}数据更新完毕")

    except:

        traceback.print_exc()

    finally:

        close_conn(conn,cursor)

对网页中数据的变化在数据库中进行实时更新

def get_c2_data():

sql = "select province,sum(confirm) from details " 

 "where update_time=(select update_time from details " 

 "order by update_time desc limit 1) " 

"group by province"

  res = query(sql)

  return res

使用echarts绘制中国地图模块

模块设计:

经验分享 程序员 微信小程序 职场和发展