使用Tornado连接 聚合数据

本文介绍了使用Tornado框架结合Python的requests库,调用聚合数据网站的接口获取JSON数据,并将其转换为Python字典进行处理。在过程中,详细记录了JSON格式转换的过程,以及在渲染模板时遇到的问题。
摘要由CSDN通过智能技术生成

最近发现一个不错的数据网站,

https://www.juhe.cn/ ,有很多免费接口,注册就能使用,很好用,正好在学习Tornado,就随手用Tornado写了个接口小程序。

由于之前也没系统学过json,不是很明白,重点记录一下格式转换的过程:


在Tronado中,直接导入requests包,这个很厉害

import requests

导入包就可以把自己写的网页中提交的数据连接到juhe网站了。

city_id = self.get_body_argument('city_id', None)
weather_date = self.get_body_argument('weather_date', None)
r = requests.get('http://v.juhe.cn/historyWeather/weather?city_id={}&weather_date={}&key={}'.format(city_id, weather_date, key))

注意,有一个key值,那个是注册juhe的时候给的验证字符串,我的key就不贴上来了。


用变量r接收返回值,返回的就是我需要的json对象


然后就该将json转为python字典使用了。


导入json包

import json

然后依次。。。。比较郁闷的是,没想明白为什么render中不能使用locals()这个函数。。。

        res = r.text
        result = json.loads(res)

        return self.render('show.html', city_id=result['result']['city_id'],
                           city_name=result['result']['city_name'],
                           weather_date=result['result']['weather_date'],
                           day_weather=result['result']['day_weather'],
                           night_weather=result['result']['night_weather'],
                           day_temp=result['result']['day_temp'],
                           night_temp=result['result']['night_temp'],
                           day_wind=result['result']['day_wind'],
                           day_wind_comp=result['result']['day_wind_comp'],
                           night_wind=result['result']['night_wind'],
                           night_wind_comp=result['result']['night_wind_comp'])

这样就把返回的json值变为字典渲染到show.html上了。

<body>
        <table>
            <tr>
                <td>城市编号</td>
                <td>{{city_id}}</td>
            </tr>
            <tr>
                <td>城市名称</td>
                <td>{{city_name}}</td>
            </tr>
            <tr>
                <td>查询日期</td>
                <td>{{weather_date}}</td>
            </tr>
            <tr>
                <td>白天天气</td>
                <td>{{day_weather}}</td>
            </tr>
            <tr>
                <td>夜间天气</td>
                <td>{{night_weather}}</td>
            </tr>
            <tr>
                <td>白天最高气温</td>
                <td>{{day_temp}}</td>
            </tr>
            <tr>
                <td>夜间最低气温</td>
                <td>{{night_temp}}</td>
            </tr>
            <tr>
                <td>白天风力</td>
                <td>{{day_wind}}  {{day_wind_comp}}</td>
            </tr>
            <tr>
                <td>夜间风力</td>
                <td>{{night_wind}}  {{night_wind_comp}}</td>
            </tr>
        </table>
</body>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值