实例:雷达图对比吃鸡游戏步枪性能(json数据分析提取展示)

吃鸡武器性能雷达图

知识点:

1 Python中的小括号()

代表tuple元祖数据类型,元祖是一种不可变序列。创建方法很简单,大多数时候都是小括号括起来的。



2 Python中的中括号[]

代表list列表数据类型,列表是一种可变序列。创建方法既简单又特别。


3 Python中的花括号{}:

代表dict字典数据类型,字典是Python中唯一内建的映射类型。字典中的值没有特殊的顺序,但都是存储在一个特定的键(key)下。键可以是数字、字符串甚至是元祖。


4 json文件的格式:

5 zip函数:用于可迭代对象的列表的对应

  append():用于列表数据的添加

6. 环境和要装的库说明:

本机是python3.6.5,需要的库如下

import requests  

import json     #json库

import jsonpath #jsonpath库,有点类似xpath,按节点提取数据

import pygal  #画雷达图的库


完整代码如下:

import requests

import json

import jsonpath

import pygal

#1请求数据

r = requests.get("http://pg.qq.com/zlkdatasys/data_zlk_zlzx.json")

#print(r.text)

#2把json数据转成python数据

py_data = json.loads(r.text)

#print(py_data)

#获取枪支数据列表

gun_name = jsonpath.jsonpath(py_data,"$..mc_94")[1:8]

#获取性能数据的列表

gun_xinn = jsonpath.jsonpath(py_data,"$..ldtw_f2")[0:7]

#print(gun_name, gun_xinn)

data =[]

#枚举列出gun_xinn列表的数据

for i in gun_xinn:

print(i) #打印枚举访问到的元素是个列表,列表中的元素是个字典{}

  #从gun_xinn列表中枚举到子元素字典{},取到子元素字典的键的键值(默认是字符串型),转换成int型,然后构造一个列表,添加到data列表中

    data.append([int(i[0]['wl_45']),int(i[0]['sc_54']),int(i[0]['ss_d0']),int(i[0]['wdx_a7']),int(i[0]['zds_62'])])

print(data)

#print(type(data[0][0]))

#4.雷达图设计

#调用raser这个类,设置雷达图

radar_chart = pygal.Radar()

#添加雷达图标题

radar_chart.title ="步枪性能"

#添加雷达图各顶点含义

radar_chart.x_labels =["威力","射程","射速","稳定性","子弹数"]

#用zip函数将可迭代对象gun_name,data中的元素名对应好,返回列表

for n,din zip(gun_name,data):

print(n,d)

    #预处理好的列表添加到雷达图中

    radar_chart.add(n,d)

#保存图像

radar_chart.render_to_file("gun.svg")

在win7 64位 pycharm,python版本3.6.5,调试通过.知识点比较多.做的笔记.

核心代码截图:


数据请求,数据提取保存部分


雷达图 

你可能感兴趣的:(实例:雷达图对比吃鸡游戏步枪性能(json数据分析提取展示))