python学习之小游戏:解析API,生成疫情词云

课程视频链接

跟着麦叔学Python:https://b23.tv/Yx4Eyq

1. 代码

import requests
import json

# 1.请求数据
url = 'https://api.yimian.xyz/coro'
response = requests.get(url)
print(response)

data = requests.get(url).text
print(data)

# 2.解析数据-转换成JSON对象
city_dict = {}  # 做成字典
json_data = json.loads(data)
print(len(json_data))

for p in json_data:
    if 'cities' in p:
        for c in p['cities']:
            cityName = c['cityName']
            cCount = c['confirmedCount']
            sCount = c['suspectedCount']
            total = int(cCount) + int(sCount)
            city_dict[cityName] = total
    else:
        cityName = p['provinceName']
        cCount = p['confirmedCount']
        sCount = p['suspectedCount']
        total = int(cCount) + int(sCount)
        city_dict[cityName] = total
print(city_dict)

# 3.写入文件
with open('city_count.txt', 'w') as f:
    for k, v in city_dict.items():
        f.write('{}:{}\n'.format(k,str(v)))

# 4.生成词云
import wordcloud
import matplotlib.pyplot as plt

# ccloud = wordcloud.WordCloud(background_color='white',width=1600,height=800,font_path = 'C:\Windows\Fonts\STXINGKA.TTF')
# ccloud.generate_from_frequencies(frequencies = city_dict)
#
# plt.figure()
# plt.imshow(ccloud,interpolation='bilinear')
# plt.axis('off')
# plt.show()

# 5.生成爱心词云,并存图片
import numpy as np
from PIL import Image
heart_mask =np.array(Image.open('heart.jpg'))
ccloud = wordcloud.WordCloud(background_color='white',mask=heart_mask,font_path = 'C:\Windows\Fonts\STXINGKA.TTF')
ccloud.generate_from_frequencies(frequencies = city_dict)

plt.figure(dpi=1200) #指定图片清晰度
plt.imshow(ccloud,interpolation='bilinear')
plt.axis('off')
# plt.show()
plt.savefig('heart.png') #保存

2. 生成的词云图片

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值