python读取JSON,txt文件,生成字典(dict),分析词频绘制词云
一、读取JSON、txt文件
1、JSON与txt文件保存字典格式的区别
字典格式:
{
"key1":"value1",
"key2":"value2",
.........
}
-
JSON文件在保存字典时,如果重复写入相同的key对应的value时会覆盖之前的value。
-
txt文件在保存字典时,换行保存一个新的字典格式。
2、读取方法
-
读取txt文件(包含多个字典),并合并字典。
import json import numpy as np f = open("../hotMsg.txt","r") line = f.readline() count = 1 while line: # print(count,ls) data = f.readline() data = json.loads(data) ls.append(data) count += 1 line = f.readline() for item in ls: for key in item.keys(): if key in dic.keys(): dic[key] += int(item[key]) else: dic[key] = int(item[key])
-
读取json文件。
import json with open("../hotMsg.json","r",encoding='UTF-8') as f: load_dict = json.load(f)
二、使用jieba库分析词频
import jieba as jieba
import jieba.analyse as analyse
words_count_list = jieba.analyse.textrank(' '.join(dic.keys()), topK=50, withWeight=True)
dic = dict(words_count_list)
三、凭借字典(词频)生成词云
import wordcloud
from matplotlib import pyplot as plt
from PIL import Image
mask = np.array(Image.open('../wordcloud.png')) # 定义词频背景
wc = wordcloud.WordCloud(
background_color=(255,255,255),
font_path='../msyh.ttf', # 设置字体格式
mask=mask, # 设置背景图
max_words=200, # 最多显示词数
max_font_size=45 # 字体最大值
)
wc.generate_from_frequencies(dic)
plt.imshow(wc) # 显示词云
plt.axis('off') # 关闭坐标轴
plt.show() # 显示图像