博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
requests从api中获取数据并存放到mysql中
阅读量:7186 次
发布时间:2019-06-29

本文共 2286 字,大约阅读时间需要 7 分钟。

python的requests库是一个非常强大的库,requests的安装方法十分简单,用:

pip install requests

即可安装requests,安装成功后:

import requests

即可导入requests模块,requests有get和post两种方法:

1、requests.get()用法:

url = "http://xxx" a_content = requests.get(url) aa = a_content.content   #.content和.text的作用是一样的
a_json = json.loads(aa)

这里说一下 json.loads和json.dumps,这是json模块的两个函数,分别进行解码和编码JSON数据, json.loads将json数据对象转换为python对象,相反,json.dumps是将python对象转换为json数据对象

我们得到的 a_json是一个字典嵌套列表的结构,通过字典的key可以获取其对应的value,然后可以解析每个字段,如:

version_name = a_json[0]['latest_release']['package']['name']
a_json是一个列表,列表中第0个元素是一个字典,依次取字典中的key,最终得到version信息

 2、requests.post()用法:

requests.post()用法基本与requests.get()相同,但是requests.post可以接受带参数的请求,可以包含token等信息:

payload = {            "access_token": "xxxxxxxxxxxxxxxxxxxxxxxxxx",            "request_body": {            }        }headers = {'content-type': 'application/json'}url = r"http://xxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxx"re = requests.post(url, data=json.dumps(payload), headers=headers)r = json.loads(re.text)

python连接MySQLdb:

db1 = MySQLdb.connect(            host="localhost",            db="",            user="root",            passwd="",            port=3306,            charset='utf8'        )cur2 = db1.cursor()cur2.execute('xxxxxxxxxxx')sql1 = """create table table_deploy(id INT (11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT ,appid int not null                                    ,timestamp VARCHAR(50)                                  ,deploy_id INT                                  )"""cur2.execute(sql1)db1.commit()

这是python连接mysql的原始方法,如果用的是Django则自带ORM,Django的Models内部封装了mysql的方法

MySQLdb.connect()表示打开数据库连接,db1.cursor()表示使用cursor()方法获取操作游标 ,cur2.execute('xxxxxxxxxxx')表示使用execute方法执行SQL语句,sql1 =xxx  表示创建数据表SQL语句

时间戳相关转换,我们知道从接口获取的时间往往不是我们想要的时间格式,这里需要进行时间转换:

now_time = int(time.time())  # 当前时间的时间戳
timeArray = time.strptime(timestamp, "%Y-%m-%d %H:%M")  #timestamp是时间字符串,strptime函数根据指定的格式把时间字符串解析为时间元组
timeStamp_1 = int(time.mktime(timeArray)) #将时间元组转换为时间戳
timeArray11 = time.localtime(timeStamp_1)
#利用localtime()将时间戳转换为时间数组
 
dateStr= time.strftime("%Y-%m-%d %H:%M:%S", timeArray1)
#再将时间数组转换为指定格式的时间字符串
datetimeObj = datetime.datetime.strptime(dateStr, "%Y-%m-%d %H:%M:%S") #将字符串日期转换为datetime
data_hours_after = datetimeObj + datetime.timedelta(hours=16) #转换为datetime之后可以对日期进行加减,表示16小时之后的日期

转载地址:http://fgukm.baihongyu.com/

你可能感兴趣的文章
k8s常用命令
查看>>
树的子结构
查看>>
FCKeditor中的回车换行和制表符缩进
查看>>
筛选出sql 查询结果中 不包含某个字符
查看>>
vi编辑器使用
查看>>
马踏棋盘
查看>>
Spring Maven 安装环境配置
查看>>
上下文切换查看 & sar
查看>>
queue-reconstruction-by-height
查看>>
android 得到连接热点的ip的方法
查看>>
Redis 安装 与 使用
查看>>
分块算法(简洁易懂)
查看>>
P3372 【模板】线段树 1
查看>>
怎样才是一个基本水平的java程序员?
查看>>
磁盘阵列
查看>>
20145328 《Java程序设计》实验四实验报告
查看>>
Largest Point
查看>>
构建高可靠hadoop集群之4-权限指引
查看>>
用 Flask 来写个轻博客 (21) — 结合 reCAPTCHA 验证码实现用户注册与登录
查看>>
数据库
查看>>