我是靠谱客的博主 激动蚂蚁,最近开发中收集的这篇文章主要介绍用mysql记录从url返回的http GET请求数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

业务场景需求及实现逻辑分析

在业务中,我们经常会碰到需要用HTTP GET请求数据的情况,比如http请求返回的结果如下所示:
在这里插入图片描述
那么,如果我们想将这些数据用mysql存储下来,那该怎么实现呢?

其实,调用python的httplibMySQLdb包将会非常容易实现,httplib负责获取url的返回,MySQLdb负责对MySQL数据库进行操作。下面整理了关系逻辑图:
在这里插入图片描述
那么,我们开始代码开发:

python依赖包准备

python需要用到的包至少有如下几个,其中MySQLdb依赖包的安装可以参考python安装mysql的依赖包mysql-python

# 此为python文本编辑器界面
#!/usr/bin/python
# coding=utf-8

import httplib
import json
import time
import MySQLdb

用httplib获取url请求返回

httplib包支持如下的一些方法和函数:

url = "http://www.testtesttest.com/mobile/kit?token=yyyyyyyyy&key=tttttt&size=1" #具体的url链接
conn = httplib.HTTPConnection("www.testtesttest.com")
conn.request(method="GET", url=url) #指定GET方法,以及url对象
response = conn.getresponse() #创建response对象
res = response.read() #读取url返回的内容

# 使用json.loads方法将json解码为python对象
json_repose = json.loads(res)
data = json_repose['data']

此时,http请求返回的所有信息都存在了对象res中,因为请求返回的是json字符串,上面我们采用了json.loads方法来解析。

可以留意到,最终我们将请求返回的json内容,都存到了python的对象中里,而一旦将数据转为数组或者元组等形式储存,我们就可以用python自带的函数对其进行解析或者其他操作了。

用python解析url请求返回的json

# 这里我们定义了一个函数用于解析json
def data_list_analyze(i):
    data_dict = data[i]
    status = data_dict['status']
    devi_id = data_dict['devi_id']
    update_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(data_dict['update_time']))
    actived_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(data_dict['actived_time']))
    return devi_id, imei, device_type, actived_time

python连接数据库并写入数据

接下来是数据库的连接示例:

# 打开数据库连接,指定数据库ip、用户名、密码、连接的库名
db = MySQLdb.connect("192.168.xxx.xxx", "db_user", "db_password", "db_database", charset='utf8')

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 建表sql语句
sql = """create table if not exists `gergsmart_list`(
`devi_id` varchar(255) NOT NULL COMMENT 'IMEI, //硬件设备 IMEI',
`imei` varchar(255) COMMENT 'ICCID,//硬件设备 SIM卡',
`device_type` varchar(255) COMMENT '设备类型',
`actived_time` datetime COMMENT '⾸次激活时间',
PRIMARY KEY(`devi_id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
"""

# 使用execute方法执行SQL语句,建表
cursor.execute(sql)

# 插入数据sql语句
insert_sql = "insert into `gergsmart_list` 
(devi_id,imei,device_type,actived_time) 
values (%s, %s, %s, %s,)"

从上面可以留意到,我们可以将python解析得到的对象devi_id、imei、device_type、actived_time,放入了mysql的插入语句中去,这样我们就实现了“从url获取数据,存到python对象中,再将python对象插入到mysql的记录中”这样的操作了。

总结,其实我们可以将python看作为一个中转器,接收url请求返回,并写入MySQL。而其中httplib负责了接收操作,MySQLdb负责了写入操作。

最后

以上就是激动蚂蚁为你收集整理的用mysql记录从url返回的http GET请求数据的全部内容,希望文章能够帮你解决用mysql记录从url返回的http GET请求数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部