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

效果如下:

相关文章
|
22小时前
|
API Python
使用Python获取HTTP请求头数据
在Python Web开发中,`requests`库用于发送HTTP请求,请求头是关键元素,包含客户端信息和请求详情。要查看请求头,先创建`Request`对象,打印其`headers`属性,然后使用`get`等方法发送请求并获取响应头。别忘了处理不同HTTP方法、内容类型以及异常。使用`Session`管理会话状态,并考虑日志记录以调试。通过控制请求头,能有效与服务器通信。
10 0
|
1天前
|
XML 前端开发 数据挖掘
Web数据提取:Python中BeautifulSoup与htmltab的结合使用
Web数据提取:Python中BeautifulSoup与htmltab的结合使用
|
1天前
|
存储 JSON JavaScript
Python 中怎样做数据交换格式
**摘要:** 本文介绍了JSON在数据交换和存储中的重要性,因其易读性和灵活性。Python使用内置的`json`模块来操作JSON文件,包括序列化和反序列化。`json.loads()`用于将JSON字符串转换为Python对象,而`json.load()`从JSON文件中加载数据。相反,`json.dumps()`将Python对象转换为JSON字符串,`json.dump()`则写入到文件。文中还展示了`json.dumps()`的不同参数,如`indent`和`sort_keys`,用于美化输出和排序。
|
1天前
|
Web App开发 JSON JavaScript
|
2天前
|
JSON 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在使用CDAS语法同步MySQL数据到Hologres时,如果开启了字段类型宽容模式,MySQL中的JSON类型会被转换为什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2天前
|
数据采集 存储 数据挖掘
Python网络爬虫实战:抓取并分析网页数据
使用Python的`requests`和`BeautifulSoup`,本文演示了一个简单的网络爬虫,抓取天气网站数据并进行分析。步骤包括发送HTTP请求获取HTML,解析HTML提取温度和湿度信息,以及计算平均温度。注意事项涉及遵守robots.txt、控制请求频率及处理动态内容。此基础爬虫展示了数据自动收集和初步分析的基础流程。【6月更文挑战第14天】
|
2天前
|
存储 安全 Java
在Python中,引用和赋值机制是理解变量和数据对象之间关系的关键
【6月更文挑战第16天】Python变量是对象引用,不存储数据,指向内存中的对象。赋值`=`创建引用,不复制对象。`b = a`时,a和b指向同一对象。引用计数管理对象生命周期,垃圾回收在引用数为0时回收对象。理解这些机制对优化内存使用关键。
23 7
|
3天前
|
存储 Python 容器
【Python数据魔术】:揭秘类型奥秘,赋能代码创造
【Python数据魔术】:揭秘类型奥秘,赋能代码创造
|
3天前
|
存储 索引 Python
【Python列表解锁】:掌握序列精髓,驾驭动态数据集合
【Python列表解锁】:掌握序列精髓,驾驭动态数据集合
|
4天前
|
JSON API 数据格式
如何用 Python 的 requests 库发送 JSON 数据的 POST 请求
使用 requests 库发送 JSON 数据的 POST 请求是一个非常简单且实用的操作。通过将目标 URL 和 JSON 数据传递给 requests.post 方法,你可以轻松发送请求并处理响应。本篇文章介绍了从安装 requests 库,到发送 JSON 数据的 POST 请求,再到处理响应的整个流程。希望这篇文章能帮助你更好地理解并应用这个强大的 HTTP 请求库。