文档章节

Python语言使用聚合数据提供的万年历接口实例

呵哈糊涂
 呵哈糊涂
发布于 2016/12/11 20:34
字数 645
阅读 54
收藏 0

在聚合数据实名认证后就可以申请API了,以申请万年历的接口为例:

官方给的说明已经很详细了,不过比较缺憾的事python的demo官方的比较老旧对于使用3以上的还是个麻烦

接口解释如下:

接口地址:http://japi.juhe.cn/calendar/day

支持格式:json

请求方式:get post

请求示例:http://japi.juhe.cn/calendar/day?date=2015-1-1&key=您申请的appKey

接口备注:根据传入日期返回当天详细信息

 

请求参数说明:

  名称 类型 必填 说明
  key string 您申请的appKey
  date string 指定日期,格式为YYYY-MM-DD,如月份和日期小于10,则取个位,如:2012-1-1

返回参数说明:

  名称 类型 说明
  error_code int 返回状态码
  reason string 返回原因
  result string 返回实体内容

 

请求后返回的json数据:

{
    "error_code": 0,
    "reason": "Success",
    "result": {
        "data": {
            "holiday": "元旦",//假日
            "avoid": "破土.安葬.行丧.开生坟.",//忌
            "animalsYear": "马",//属相
            "desc": "1月1日至3日放假调休,共3天。1月4日(星期日)上班。",//假日描述
            "weekday": "星期四",//周几
            "suit": "订盟.纳采.造车器.祭祀.祈福.出行.安香.修造.动土.上梁.开市.交易.立券.移徙.入宅.会亲友.安机械.栽种.纳畜.造屋.起基.安床.造畜椆栖.",//宜
            "lunarYear": "甲午年",//纪年
            "lunar": "十一月十一",//农历
            "year-month": "2015-1",//年份和月份
            "date": "2015-1-1"//具体日期
        }
    }
}

参考官方的介绍,重新写了一个后台请求,具体如下

首先需要引入几个库

import json
from urllib.request import urlopen
from flask import jsonify

然后是请求并解析数据:

class GetDate(View):
    methods = ['GET', 'POST']

    def dispatch_request(self):
        # ----------------------------------
        # 万年历调用
        # ----------------------------------
        appkey = '这是你申请的APIKEY'
        date = datetime.now().strftime('%Y-%m-%d') # 获取当前日期,并格式化成需要的
        url = 'http://japi.juhe.cn/calendar/day?date={}&key={}'.format(date, appkey) # 拼接出需要的的请求地址
        data = urlopen(url) # 使用urlopen获取bytes类型数据
        data = bytes.decode(data.read()) # 将bytes数据编码成str
        da = json.loads(data) # 使用json下的loads方法转化为字典表
        if da.get('error_code') == 0: # 判断如果请求成功则获取数据
            das = da.get('result').get('data') # 获取键值为data需要的dict
            return jsonify(das) # 将dict转换为json数据返回

前台使用ajax请求:

<script>
   <!-- ================= 日期信息 ================== -->
    $(document).ready(function () {
        $.ajax({
            url: '{{ url_for('blog.get_date') }}',
            method: 'GET',
            datatype: 'json',
            success: function (date) {
                    $("#dateinfo").append(date.date); # 将date数据塞入id="dateinfo"的容器内
                    $("#weekday").append(date.weekday);
                    $("#lunar").append(date.lunar);
                    $("#animal").append(date.animalsYear);
                    $("#suit").append(date.suit);
                    $("#avoid").append(date.avoid);
                    $("#lunaryear").append(date.lunarYear)
            }
        });
    });
</script>

 

© 著作权归作者所有

共有 人打赏支持
呵哈糊涂
粉丝 0
博文 10
码字总数 6480
作品 0
郑州
后端工程师
《大话设计模式》Python版代码实现

 上一周把《大话设计模式》看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多、偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼界。《大话设计模式》的代码使用C#写成的,...

若虚道人
2014/08/14
0
2
Python发展迅速,成为学术界新主流

如果说2018年以前R是数据学术界的主流,但是现在Python正在慢慢取代R在学术界的地位。 Python与R相比速度要快。Python可以直接处理上G的数据;R不行,R分析数据时需要先通过数据库把大数据转...

Python燕大侠
05/07
0
0
Python入门到进阶,这本书有什么不同?

人们常说Python语言简单,编写简单程序时好像也确实如此。但实际上Python绝不简单,它也是一种很复杂的语言,其功能特征非常丰富,能支持多种编程风格,在几乎所有方面都能深度定制。要想用好...

异步社区
08/13
0
0
Python对象持久化学习整理

随着项目的深入,python对象持久化问题也随之而来。而在这之前,对于python对象持久化还停留在pickle时代,而这已无法满足当前项目发展的需要了,于是只好借助google疯狂的学习了一把,同时也...

索隆
2012/05/24
0
0
hive+python数据分析入门

本文首先发布在: http://leanote.com/blog/view/539276d41a91080a06000002 本文作者系 leanote 的核心开发者, 多谢关注leanote. leanote官网, leanote github 为什么要使用hive+python来分析...

lifephp
2014/06/07
0
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取整除法

python3.6 中取整除法运算逻辑如下: d 非零,那么商 q 满足这样的关系: a = qd + r ,且0 ≤ r n1=7//3#7 = 3*2 +1n2=-6.1//3#-7 = 3*(-3)+2'{},{}'.format(n1,n2) 从运行结果可以...

colinux
29分钟前
3
0
阶段总结——用虚拟机搭建一个高可用负载均衡集群架构

[toc] linux基本知识已经介绍完,现有一个业务需要操作,通过对这个项目的操作,可以复习、总结、巩固之前的知识点; ** 用13台虚拟机搭建一个高可用负载均衡集群架构出来,并运行三个站点,...

feng-01
32分钟前
0
0
mysql 设置utf8字符集 (CentOS)

1.查看数据库及mysql应用目前使用的编码方式 (1)链接mysql 客户端 (2)执行:status 结果: 2.修改mysql 应用的字符编码(server characterset ) (1)打开配置文件:vim /etc/mysql/my...

qimh
32分钟前
0
0
windows无法格式化u盘解决方法

1。点开始-运行-输入cmd-format f: /fs: fat32 (这里f:是指U盘所在盘符) 这个格式化会很慢 请耐心等待

大灰狼wow
44分钟前
0
0
MySql 8.0连接失败

原来,MySql 8.0.11 换了新的身份验证插件(caching_sha2_password), 原来的身份验证插件为(mysql_native_password)。而客户端工具Navicat Premium12 中找不到新的身份验证插件(caching_s...

放飞E梦想O
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部