使用Python处理JSON格式数据

简介: 使用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')

效果如下:

相关文章
|
2天前
|
供应链 数据挖掘 数据处理
聚合数据,洞察未来!Python聚合术,解锁数据背后的商业密码!
【7月更文挑战第19天】数据聚合整合分散数据,揭示隐藏模式,助力企业决策。Python的Pandas与NumPy库简化了这一过程,提供高效的数据处理。例如,通过Pandas的groupby和agg函数,可以按产品ID和日期聚合销售数据,计算每日销量和收入。聚合后,企业可洞察产品销售趋势、季节性变化,优化策略,预测需求。Python丰富的资源和活跃社区支持各层次用户进行数据探索。
16 7
|
2天前
|
数据采集 机器学习/深度学习 数据挖掘
转换数据,扭转乾坤!Python转换技巧,让你的数据分析如虎添翼!
【7月更文挑战第19天】Python在数据转换中扮演关键角色,借助Pandas库进行数据清洗,如填充缺失值、处理异常值和转换数据类型。数据重塑通过pivot、melt和groupby提供多维度视图。文本数据通过独热编码或标签编码转化为数值。自定义函数解决复杂转换问题,提升数据分析的深度和准确性。掌握这些技巧,能有效挖掘数据价值,助力决策。
17 4
|
1天前
|
数据挖掘 索引 Python
数据聚合新风尚!Python带你领略数据聚合的无限魅力,秒变数据达人!
【7月更文挑战第20天】在数据驱动的世界,Python的Pandas库为数据聚合提供了强大工具。通过分组和统计计算,Pandas的DataFrame使得从海量数据中提取价值变得轻松。例如,聚合销售数据按地区和产品分类,只需简单几行代码即可计算总销量。Pandas不仅支持基本统计函数,还能自定义聚合操作,结合多级索引和其他高级功能,助你成为数据专家。开始使用Pandas,解锁数据的潜在洞察吧!
11 4
|
2天前
|
数据采集 数据挖掘 数据处理
数据清洗,不只是清洁!Python教你如何挖掘数据中的隐藏价值!
【7月更文挑战第19天】在数据驱动的世界,数据清洗是揭示企业资产价值的关键。Python的Pandas库助力分析师处理电商平台用户购买数据中的缺失值、格式错误和异常值。通过识别缺失值并填充,统一日期格式,以及用IQR法检测和处理异常值,数据变得有序且适合分析,从而能洞察用户行为模式和市场趋势,释放数据的潜力。数据清洗不仅是预处理,更是价值创造的过程。
16 3
|
1天前
|
数据采集 机器学习/深度学习 数据挖掘
数据也需SPA?Python转换大法,给你的数据做个全身放松SPA!
【7月更文挑战第20天】在Python中,数据SPA涉及理解需求、清洗(如用Pandas去除重复值、填充缺失值)、格式转换(如日期字符串转datetime)及聚合分析(如按年份分组求和)。Pandas库是数据清洗的强大工具,能有效提升数据质量,便于决策和机器学习。通过这些步骤,数据得以优化,准备就绪以应对各种分析挑战。
17 1
|
2天前
|
数据采集 数据挖掘 数据处理
数据转换与聚合,Python的双刃剑!精准切割,深度挖掘,数据世界任你遨游!
【7月更文挑战第19天】Python的Pandas库是数据科学家处理数据的得力工具,它在数据转换和聚合上的功能强大。例如,使用Pandas的`to_datetime`函数能统一日期格式,而`groupby`配合`agg`则可按类别聚合数据,进行统计分析。通过这些方法,可以有效地清洗数据、提取关键信息,助力数据驱动的决策。
|
4天前
|
存储 Python
数据包络分析(Data Envelopment Analysis, DEA)详解与Python代码示例
数据包络分析(Data Envelopment Analysis, DEA)详解与Python代码示例
|
5天前
|
前端开发 JavaScript UED
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
【7月更文挑战第16天】在前后端分离的Web开发中,WebSocket解决了实时数据交换的问题。使用Python的Flask和Flask-SocketIO库,后端创建WebSocket服务,监听并广播消息。前端HTML通过JavaScript连接到服务器,发送并显示接收到的消息。WebSocket适用于实时通知、在线游戏等场景,提升应用的实时性和用户体验。通过实战案例,展示了如何实现这一功能。
|
6天前
|
存储 缓存 Python
python中小数据池和编码
python中小数据池和编码
17 3
|
3天前
|
JSON 分布式计算 大数据
MaxCompute产品使用合集之如何解析嵌套的JSON数据
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。