python接口调用过程中的小总结

一、前言:
本人使用的开发环境是python 3.7.4
在这里插入图片描述
首先下载requests包:

	pip install requests

在这里插入图片描述
导包:
import requests
import json
在接口调用过程中(程序运行),出现如下错误:
requests.exceptions.SSLError: HTTPSConnectionPool(host=‘oapi.dingtalk.com’, port=443): Max retries exceeded with url: /user/listbypage?access_token=access_token&department_id=id&offset=0&size=40 (Caused by SSLError(SSLError(“bad handshake: SysCallError(10060, ‘WSAETIMEDOUT’)”)))

	问题1)、HTTPSConnectionPool(host='z.jd.com', port=443),需要取消认证:在requests请求参数中添加	
	verify=False参数。
	如:requests.get('https://www.baidu.com/',verify=False)
	问题2)、取消认证之后都还是不能一次,可以加入另外一个参数:timeout=60。
	如:requests.get('https://www.baidu.com/',verify=False,timeout=60)
	问题3)、InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised.See:*******,解决办法如下,在项目引用requests模块后禁用这个报警:
	如:requests.packages.urllib3.disable_warnings()
	问题4)、为了保证请求的信息编码格式,可以加入请求头,
	headers= {"Content-Type": "application/json;charset=utf-8"}
	如:requests.get('https://www.baidu.com/',verify=False,headers=headers)
	问题5)、请求失败,可以增加连接的次数
	requests.adapters.DEFAULT_RETRIES = 10
	问题6)、如果建立的连接没有及时关闭,可以做如下操作关闭连接。
	session = requests.session()
	session.keep_alive = False
	#默认情况是True。
	问题7)、排查问题前可以检查一下,自己的环境和接口说明文档,是否有访问频率限制和格式要求,是否缺少requests依赖包:
	如:pyOpenSSL包、ndg-httpsclient、pyasn1,如果缺少就:
	pip install pyOpenSSL
	pip install ndg-httpsclient
	ndg-httpsclient pyasn1
	问题8)、在程序的外面可以通过time来控制接口调用的时间:
	如:time.sleep(10)-----程序休息10秒钟。

其他问题:

#转化成自己需要的数据格式:转换成python格式的数据
# value = bytes(json.dumps(data_info,ensure_ascii=False,indent=4),"utf-8")
# value = bytes(json.loads(data_info,ensure_ascii=False,indent=4),"utf-8")
请求后的返回结果:
res = requests.get(url_users,timeout=60,verify=False,headers=HEADERS).text
response = json.loads(res)[“你需要的key”]
将结果存储在mysql数据库中:

在这里插入图片描述
从数据库查询的结果集:

	import pymysql --------如果没有这个模块可以pip install pymysql
	connect = pymysql.Connect(host='ip',port=port,user='user',	
	passwd = 'password',db='databasename',charset='utf8')
	#如果是连接mssql,可以pip install mssql。
	cursor = connect.cursor()
	sql = """ select * from table_name"""
	cursor.excute(sql)
	#获取结果集
	results = cursor.fetchall()
	#遍历结果集
	for res in results :
		i = 0
		re = res[i]
		#打印结果看看是不是你需要的,如果不是可以稍做调整。
		print(re)

拓展:(Python 十大装 B 语法)
https://mp.weixin.qq.com/s/FuQhj8wtq2V9w9Ntiu-cJA
参考其他:
https://blog.csdn.net/wdh315172/article/details/80491668?utm_source=app

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值