小尹学python

导航

Python:案例之获取天气信息并写入(函数和读写功能)

我写的代码:

import requests

def write_file(**kwargs):
    """将天气信息拼接起来,并写入到文件
    格式要求:
        1. 每个城市的天气占一行
        2. 每行的格式为:city-北京,cityid-101010100,temp-18...
    """
    # 补充代码
    item = []
    value = list(kwargs.values())
    for it in value:
        for a,b in it.items():
            c = f'{a}-{b}'
            item.append(c)
        m = ','.join(item)
        with open('weather.txt',mode='a',encoding='utf-8') as f:
            f.write(m)
            f.write('\n')

def get_weather(code):
    """ 获取天气信息 """
    url = "http://www.weather.com.cn/data/ks/{}.html".format(code)
    res = requests.get(url=url)
    res.encoding = "utf-8"
    weather_dict = res.json()
    return weather_dict


city_list = [
    {'code': "101020100", 'title': "上海"},
    {'code': "101010100", 'title': "北京"},
]
for i in city_list:
    j = i['code']
    infor = get_weather(j)
    for k,v in infor.items():
        write_file(k=v)

优秀的代码:

import requests


def write_file(**kwargs):
    data_list = []

    row_dict = kwargs["weatherinfo"]
    for k, v in row_dict.items():
        group = "{}-{}".format(k, v)
        data_list.append(group)
    row_string = ",".join(data_list)

    with open('xxxx.txt', mode='a', encoding="utf-8") as file_object:
        file_object.write("{}\n".format(row_string))


def get_weather(code):
    url = "http://www.weather.com.cn/data/ks/{}.html".format(code)
    res = requests.get(url=url)
    res.encoding = "utf-8"
    weather_dict = res.json()
    return weather_dict


city_list = [
    {'code': "101020100", 'title': "上海"},
    {'code': "101010100", 'title': "北京"},
]

for item in city_list:
    # 101020100
    result_dict = get_weather(item["code"])
    write_file(**result_dict)

posted on 2021-10-14 15:36  小尹学python  阅读(171)  评论(0)    收藏  举报