对python调用微软API代码的理解
来源:互联网 发布:数据分析师职称评定 编辑:程序博客网 时间:2024/06/07 21:50
import httplibimport urllibimport base64import sysimport sslssl._create_default_https_context = ssl._create_unverified_contextdef emotion(): # print "success" headers = { 'Content-Type': 'application/octet-stream', 'Ocp-Apim-Subscription-Key': '6b106d11b891490298ebecbc1f99eb85', }##确定使用类型是json还是stream,输入密钥 params = urllib.urlencode( {"url": "https://api.projectoxford.ai/emotion/v1.0/recognize"})##输入Request URL,urlencode函数,可以把key-value这样的键值对转换成我们想要的格式,返回的是a=1&b=2这样的字符串 f = urllib.urlopen("http://127.0.0.1:8090/?action=snapshot") s = f.read() w = open("snapshot.jpg", "wb") w.write(s)##将图片传给定地址,'wb'是以二进制写入(原文档没有给出127.0.0.1这个地址,此处为猜测) fp = open("snapshot.jpg", "rb")##'rb'即为用二进制打开文件 fp.seek(0, 0)##进行此操作后读取文件的指针仍在开头,seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。默认为0。 d = []##定义列表d并把最重最终获得的二进制代码传到d中 d = fp.read()##进行文件的读写操作,最终目的是为了获得{body},即d try: conn = httplib.HTTPSConnection('api.projectoxford.ai') conn.request("POST", "/emotion/v1.0/recognize?%s" % params, d, headers)##将一系列的头,需要的URL,检测的图片的二进制代码post到微软网站 response = conn.getresponse() data = response.read() print(data) conn.close()##获取的微软API返回的参数并储存到data中 except Exception as e: print("[Errno {0}] {1}".format(e.errno, e.strerror))##如果发生错误的话就输出错误类型 data = eval(data)##利用eval函数可以把返回的字符串转换为python能够识别的列表形式 num = len(data)##计算列表元素,而非字符串个数 ret = [] for i in range(0, num): ret.append(sorted(data[i]["scores"],reverse=True,key=lambda x: data[i]["scores"][x])[0]) ret = str(ret)##对其进行sorted排序,最终只返回最大的那个,建立ret列表,重新转换为字符串,sorted排序:data为列表可迭代对象,reverse控制降序排列,key写了一个匿名函数确定了排序的规则,最后[0]限定了只添加第一个即为最大的那个元素 return ret
0 0
- 对python调用微软API代码的理解
- jenkins的api调用python篇(三)秀代码
- 百度ocr开放api调用python代码
- Python对class的理解
- 对Python生成器的理解
- 调用JAVA API对HDFS文件进行文件的读写、上传下载、删除等操作代码详解
- 对部分REST API的理解
- vue2.0对API的一些理解
- 对Rest api权限设计的理解
- PHP 对sphinx的api调用
- C#调用微软在线翻译API实现简单的翻译功能
- C#调用微软在线翻译API实现简单的翻译功能
- 一段用Python语言的Ctypes模块调用系统api函数写的rsa加密代码
- 使用库函数API和C代码中嵌入汇编代码两种方式实现对sysinfo的系统调用
- 对BS开发技术发展的一点理解(微软体系)
- 屌丝对微软关键字__declspec (novtable)的浅显理解
- 我对微软.NET开源的理解
- Python调用C的代码
- 遮罩元素下的body禁止滚动
- WebSocket 是什么原理?为什么可以实现持久连接?
- xcode里.o文件报错
- 启动数据库代理服务时报错:远程过程调用失败。 [0x800706be]
- RandomAecessFile open failed: EISDIR (Is a directory)
- 对python调用微软API代码的理解
- Linux 五个最牛视频编辑软件
- QAQ的圆
- Java基础-IO流3 自定义缓冲区
- 信息来源
- Android自定义异常类
- Android studio项目上传至oschina(码云)教程
- Office自动化
- 一些me常用的命令语句