python小象學院: JSON文件-----空氣質量描述

 

 

""""
    auther:Susan
    function:AQI Calculation
    version:v1.0
    data:2019/4/27
"""

def cal_linear(iaqi_lo,iaqi_hi,bp_lo,bp_hi,cp):
    """
    Range scaling
    """
    iaqi = (iaqi_hi-iaqi_lo)*(cp-bp_lo)/(bp_hi-bp_lo)+iaqi_lo
    return iaqi

def cal_pm_iaqi(pm_val):
    """
    Calculation:pm2.5_IAQI
    """
    if 0 <= pm_val < 35:
        iaqi = cal_linear(0, 50, 0, 35, pm_val)
    elif 35 <= pm_val <75:
        iaqi = cal_linear(50, 100, 35, 75,pm_val)
    elif 75 <= pm_val <115:
        iaqi = cal_linear(100, 150, 75, 115,pm_val)
    elif 115 <= pm_val <150:
        iaqi = cal_linear(150, 200, 115, 150,pm_val)

    else:
        pass


def cal_co_iapi(co_val):
    """
    Calculation:CO_IAQI
    """
    # global iaqi
    if 0 <= co_val < 3:
        iaqi = cal_linear(0, 50, 0, 3, co_val)
    elif 3 <= co_val <5:
        iaqi = cal_linear(50, 100, 2, 4,co_val)
    elif 5 <= co_val <15:
        iaqi = cal_linear(100, 150,5, 14,co_val)
    else:
        pass


def cal_api(param_list):
    """
    AQI Calculation
    """
    pm_val = param_list[0]
    co_val = param_list[1]

    pm_iaqi = cal_pm_iaqi(pm_val)
    co_iaqi = cal_co_iapi(co_val)

    iaqi_list = []
    iaqi_list.append(pm_iaqi)
    iaqi_list.append(co_iaqi)

    aqi = max(iaqi_list)

    return aqi

def main():
    print('Please enter this information,and separate by spaces.')
    input_str = input('(1)PM2.5: (2)CO:')
    str_list = input_str.split(' ')
    pm_val = float(str_list[0])
    co_val = float(str_list[1])

    param_list = []
    param_list.append(pm_val)
    param_list.append(co_val)

    """
    Transfer function of AQI Calculation
    """
    aqi_val = cal_api(param_list)

    print('Air quality index value: {} '.format(aqi_val))

if __name__ == '__main__':
    main()

 

# -*- coding:utf-8 -*-
""""
    auther:Susan
    function:AQI Calculation
    version:v2.0
    data:2019/4/27
"""

import json

def process_json_file(filepath):

    f = open(filepath,mode='r', encoding='utf-8')
    city_list = json.load(f)

    return city_list


def main():
    filepath = input('Please input a json filemane:')
    city_list = process_json_file(filepath)
    city_list.sort(key=lambda city:city['aqi'])
    top5_list = city_list[:5]

    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()

# -*- coding:utf-8 -*-
""""
    auther:Susan
    function:AQI Calculation
    version:v3.0
    data:2019/4/27
"""

import json
import csv

def process_json_file(filepath):

    f = open(filepath,mode='r', encoding='utf-8')
    city_list = json.load(f)

    return city_list


def main():
    filepath = input('Please input a json filemane:')
    city_list = process_json_file(filepath)
    city_list.sort(key=lambda city:city['aqi'])
    top5_list = city_list[:5]

    lines = []
    #Column name
    lines.append(city_list[0].keys())
    #
    for city in city_list:
        lines.append(list(city.values()))

    f = open('aqi1.csv','w',encoding='utf-8',newline='')
    writer = csv.writer(f)
    for line in lines:
        writer.writerow(line)
    f.close()

if __name__ == '__main__':
    main()

newline=''

新行不加入任何字符,不指定則會在新行末尾加入空行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章