python数据读取与可视化——(2) Json格式

JSON格式读取与可视化

一 JSON

 JSON(JavaScript Object Notation),json本来是用于js的一种文件格式,后来这种文件格式得到普及,其他语言也开始接受这种文件格式。

举个🌰,就是这个亚子。类似于列表,而列表里面的元素都是字典的形式。
[{
“date”: “2017-01-01”,
“month”: “01”,
“week”: “52”,
“weekday”: “Sunday”,
“close”: “6928.6492”
},
{
“date”: “2017-01-02”,
“month”: “01”,
“week”: “1”,
“weekday”: “Monday”,
“close”: “7070.2554”
}]

二 下载JSON格式文件

1.利用request下载

import json
import requests
json_url ='https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json'
# 文件所在的网址
req = requests.get(json_url
)#下载json文件数据到本地
with open('btc_close_2017.json', 'w') as f:
    f.write(req.text)
    # 读取文本,并写入我们创建的文件中
file_requests = req.json()
# 将req转化为json格式
print(type(file_requests))#下载后依然是列表

2 利用urlopen下载

from __future__ import (absolute_import, division, print_function, unicode_literals)
from urllib.request import urlopen
#调用urlopen函数

import json

json_url = 'https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json'
reponse = urlopen(json_url)
req = reponse.read()# 下载数据
with open('btc_close_2017.json', 'wb') as f:
    f.write(req)# 写入
file = json.loads(req)#格式转换

3 手动操作(手动狗头)

将文件下载后移到脚本所在的文件夹中

with open('btc_close_2017.json','r') as f:
    file = json.load(f)

个人觉得方法一更简便一点- -)

三 数据的读取

import json
import pygal
#弄几个空列表储存一下数据
dates = []
months = []
weeks = []
weekdays = []
closes = []
with open('btc_close_2017.json') as f:
    j = json.load(f)
for data in j:
    # 这一块是可以省略着写,根据键来寻找相应的对
    date = data['date']
    month = int(data['month'])
    week = int(data['week'])
    weekday = data['weekday']
    close = float(data['close'])# 注意数据类型
    dates.append(date)
    months.append(month)
    weeks.append(week)
    closes.append(close)

四 数据的可视化

通过python中的pygal库实现可视化

line_chart = pygal.Line(x_label_rotation=20, show_minor_x_labels=False)
# 前面是x轴的旋转程度
line_chart.title = '收盘价¥'
line_chart.x_labels = dates
# x轴的坐标是date
N=20 # 每隔20天取一次
line_chart.x_labels_major = dates[::N]
line_chart.add('收盘价', closes)
line_chart.render_to_file('收盘价折线图(¥).svg')

在这里插入图片描述

码字不易,欢迎点赞三连😘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值