Python的听课笔记案例8--空气污染指数计算2.0
原创本课程的这一部分重点介绍:
1,请阅读所获得的JSON数据文件
2、并将AQI排在前五位的数据输出。JSON文件
什么是JSON文件?
JSON(JavaScript Object Notation)是一种轻量级数据交换格式,是可以以文本格式打开的文本数据。
复杂的数据可以表示和存储,易于阅读和理解。
JSON文件规则:
1,数据以键值对的形式保存;
2,键-值对之间用逗号分隔;
3,花括号用于保存由对象组成的数据的键-值对;
4方括号用于保存数据的键-值对数组;list列表)
以对象和数组形式组织的键-值对可以表示任何结构的数据。
JSON格式是互联网上使用的主要复杂数据格式之一。
下图是一个JSON文件:

JSON库是处理JSON格式的Python标准库
两个进程:
1、编码(encoding),将Python转换数据类型JSON格式化的过程
2、解码(decoding),从JSON格式中的解析数据对应于Python数据类型的处理
函数
含义
dumps()
将Python转换数据类型JSON格式
loads()
将JSON格式字符串被转换。Python数据类型
dump()
与dumps()函数一致并输出到文件
load()
与loads()函数功能一致,从文件中输入。
以下是如何使用Python如何从JSON文件获取数据,如何输出数据JSON文件中:
"""
作者:lanxingbudui
日期:2020-02-22
功能:AQI计算
功能2:如何进入JSON文件数据,如何输出JSON文件数据。
版本:1.0
"""
import json
def process_json_file(filepath):
"""
解码json文件
"""
"""
处理单据的三个步骤:1,打开文件;2,处理文件;;3,关闭文件
"""
f = open(filepath, mode=r, encoding=utf-8)
city_list = json.load(f)
return city_list
def main():
"""
主函数
"""
filepath = input(请输入json文件名:)
city_list = process_json_file(filepath)
# 使用lambda函数 排序
city_list.sort(key=lambda city: city[aqi])
top5_list = city_list[:5]
# 输出到json文件
f = open(top5_aqi.json, mode=w, encoding=utf-8)
json.dump(top5_list, f, ensure_ascii=False)
f.close()
print(city_list)
if __name__ == __main__:
main()
最后加上beijing_aqi.json归档、复制、创建新文件json文件就足够了。
[
{
"aqi":47,
"area":"北京",
"pm2_5":32,
"pm2_5_24h":33,
"position_name":"万寿西宫",
"primary_pollutant":null,
"quality":"优",
"station_code":"1001A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":63,
"area":"北京",
"pm2_5":37,
"pm2_5_24h":20,
"position_name":"定陵",
"primary_pollutant":"颗粒物(PM10)",
"quality":"良",
"station_code":"1002A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":57,
"area":"北京",
"pm2_5":40,
"pm2_5_24h":36,
"position_name":"东四",
"primary_pollutant":"细颗粒物(PM2.5)",
"quality":"良",
"station_code":"1003A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":44,
"area":"北京",
"pm2_5":24,
"pm2_5_24h":30,
"position_name":"天坛",
"primary_pollutant":null,
"quality":"优",
"station_code":"1004A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":46,
"area":"北京",
"pm2_5":28,
"pm2_5_24h":38,
"position_name":"农展馆",
"primary_pollutant":null,
"quality":"优",
"station_code":"1005A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":58,
"area":"北京",
"pm2_5":41,
"pm2_5_24h":32,
"position_name":"官园",
"primary_pollutant":"细颗粒物(PM2.5)",
"quality":"良",
"station_code":"1006A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":54,
"area":"北京",
"pm2_5":38,
"pm2_5_24h":28,
"position_name":"海淀区万柳市",
"primary_pollutant":"细颗粒物(PM2.5)",
"quality":"良",
"station_code":"1007A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":102,
"area":"北京",
"pm2_5":76,
"pm2_5_24h":38,
"position_name":"顺义新城",
"primary_pollutant":"细颗粒物(PM2.5)",
"quality":"轻度污染",
"station_code":"1008A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":80,
"area":"北京",
"pm2_5":48,
"pm2_5_24h":21,
"position_name":"怀柔镇",
"primary_pollutant":"臭氧1小时",
"quality":"良",
"station_code":"1009A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":77,
"area":"北京",
"pm2_5":46,
"pm2_5_24h":20,
"position_name":"昌平镇",
"primary_pollutant":"颗粒物(PM10)",
"quality":"良",
"station_code":"1010A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":60,
"area":"北京",
"pm2_5":43,
"pm2_5_24h":32,
"position_name":"奥体中心",
"primary_pollutant":"细颗粒物(PM2.5)",
"quality":"良",
"station_code":"1011A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":50,
"area":"北京",
"pm2_5":35,
"pm2_5_24h":27,
"position_name":"古城",
"primary_pollutant":null,
"quality":"优",
"station_code":"1012A",
"time_point":"2017-07-29T14:00:00Z"
},
{
"aqi":58,
"area":"北京",
"pm2_5":40,
"pm2_5_24h":29,
"position_name":null,
"primary_pollutant":"颗粒物(PM2.5),颗粒物(PM10)",
"quality":"良",
"station_code":null,
"time_point":"2017-07-29T14:00:00Z"
}
] 版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123




