requests从api中获取数据并存放到mysql中
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小时之后的日期
详细示例代码详见我的github:https://github.com/a342058040/requests-Mysql-.git
requests从api中获取数据并存放到mysql中的更多相关文章
- Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)
Sql Server中的数据类型和Mysql中的数据类型的对应关系(转):https://blog.csdn.net/lilong329329/article/details/78899477 一.S ...
- python将oracle中的数据导入到mysql中。
一.导入表结构.使用工具:navicate premium 和PowerDesinger 1. 先用navicate premium把oracle中的数据库导出为oracle脚本. 2. 在Power ...
- talend 将hbase中数据导入到mysql中
首先,解决talend连接hbase的问题: 公司使用的机器是HDP2.2的机器,上面配置好Hbase服务,在集群的/etc/hbase/conf/hbase-site.xml下,有如下配置: < ...
- shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中
shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...
- 从api接口获取数据-okhttp
首先先介绍下api接口: API:应用程序接口(API:Application Program Interface) 通常用于数据连接,调用函数提供功能等等... 从api接口获取数据有四种方式:Ht ...
- Thymeleaf+SpringMVC,如何从模板中获取数据
Thymeleaf+SpringMVC,如何从模板中获取数据 在一个典型的SpringMVC应用中,带@Controller注解的类负责准备数据模型Map的数据和选择一个视图进行渲染.这个模型Map对 ...
- hive从查询中获取数据插入到表或动态分区
Hive的insert语句能够从查询语句中获取数据,并同时将数据Load到目标表中.现在假定有一个已有数据的表staged_employees(雇员信息全量表),所属国家cnty和所属州st是该表的两 ...
- 乐视云监控数据存放到influxdb中
3.9 监控.告警系统 监控报警我们分PaaS平台和业务应用两大类. PaaS平台主要聚焦在基础设施和LeEngine的各个服务组件的监控报警(比如主机CPU,内存,IO,磁盘空间,LeEng ...
- 哪种方式更适合在React中获取数据?
作者:Dmitri Pavlutin 译者:小维FE 原文:dmitripavlutin.com 国外文章,笔者采用意译的方式,以保证文章的可读性. 当执行像数据获取这样的I/O操作时,你必须发起获取 ...
随机推荐
- CSS——京东首页实战总结
第一天成果 1.浮动的盒子不要给宽,内容撑起盒子的宽 在前端设计中,一般不给浮动的盒子设置宽,让其用内容撑起一个高度. 2.小三角的表示 ◇用一个盒子(盒子宽为字的宽,高度为字高度的一半)去截取这个菱 ...
- 由获取子元素的方法find和children所获
html代码如下 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://ww ...
- cookie讲解-------浏览器种cookie
1 responce添加Set-Cookie参数: http request的返回responce为: [('Content-Type', 'application/x-javascript'), ...
- 在MyEclipse8.6中设置jQuery自动提示 - 肖飞figo的云计算专栏 - 博客频道 - CSDN.NET
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- 第五弹:VGG
接下来讲一个目前经常被用到的模型,来自牛津大学的VGG,该网络目前还有很多改进版本,这里只讲一下最初的模型,分别从论文解析和模型理解两部分组成. 一.论文解析 一:摘要 -- 从Alex-net发展而 ...
- python_json常用的方法
1. 什么是JSON? JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端 ...
- POJ3268Dijkstra
题意:给定n个点,m条边,求所有顶点中到顶点x的来回最短距离 分析:考虑到数据范围,选用Dijkstra,用Floyd会超时 #include <iostream> #include &l ...
- 51nod贪心算法教程
51nod确实是一个好oj,题目质量不错,wa了还放数据,学习算法来说挺好的,这次我做了几个水的贪心,虽然水,但是确实都很典型. 教程链接:http://www.51nod.com/tutorial/ ...
- FIFO存储器
FIFO( First In First Out)简单说就是指先进先出.由于微电子技术的飞速发展,新一代FIFO芯片容量越来越大,体积越来越小,价格越来越便宜.作为一种新型大规模集成电路,FIFO芯片 ...
- 获取IE浏览器关闭事件
//关闭浏览器时才会触发此操作,刷新页面不执行 //n 检测鼠标相对于用户屏幕的水平位置 - 网页正文部分左:求出鼠标在当前窗口上的水平位置(参照:当前窗口右上角为0.0坐标) //m 网页正文全文宽 ...