使用Python处理JSON格式数据

------来自百度百科

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。

它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

JSON最常用的格式是对象的 键值对。例如下面这样:

1
{"firstName": "Brett", "lastName": "McLaughlin"}


------参照Python编程从入门到实践(第三版)

------Python 3

------

一、下载json格式文件

书中介绍了两种下载方法,我用来requests的方法,(相对简单)

方法如下:

1.载入requests库 (如果没有需要先下载)import requests 

2.设置url 

3.使用requests.get(url)方法,向服务器发送请求,获取数据

4.写入文件

源码如下:

import requests

json_url = 'https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json'
req = requests.get(json_url)

#将数据写入文件
with open('btc_close_2017_request.json','w')as f:
    f.write(req.text)
file_requests = req.json()
print(file_requests)

运行后,可以看到一大串键值对组成的字典。


二、提取数据

1.导入json模块

2.加载json文件

3.格式化打印

import json

#加载数据至列表
filename = 'btc_close_2017_request.json'
with open (filename) as f:
    btc_data = json.load(f)
#打印每一天的消息
for btc_dict in btc_data:
    date = btc_dict['date']
    month = btc_dict['month']
    week = btc_dict['week']
    weekday = btc_dict['weekday']
    close = btc_dict['close']
    print("{} is month {} week {},{},the close price is {} RMB".format(date, month,week, weekday, close))

效果如下:




3.处理数据,将字符串转化成数字。

使用int()将字符串转化成整数

注意含小数点的字符串(此处为close)需要先转化成float,然后再转化成int.


4.绘制折线图

使用pygal

import json
import pygal
#加载数据至列表
filename = 'btc_close_2017_request.json'
with open (filename) as f:
    btc_data = json.load(f)

dates =[]
months = []
weeks = []
weekdays =[]
close =[]

for btc_dict in btc_data:
    dates.append(btc_dict['date'])
    months.append(int(btc_dict['month']))
    weeks.append(int(btc_dict['week']))
    weekdays.append( btc_dict['weekday'])
    close.append(int(float(btc_dict['close'])))
   
line_chart =pygal.Line(x_label_rotation=20,show_minor_x_labels=False)
line_chart.title = ' 收盘价RMB '
line_chart.x_labels =dates
N = 20
line_chart.x_labels_major = dates[::N]
line_chart.add('收盘价', close)
line_chart.render_to_file('收盘价折线图.svg')


效果如下:



猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/80718246
今日推荐