将本地图片转化为base64给face++接口,得到返回的json并解析
- 安装requests库
为什么选择这个库 ? Requests它会比urllib更加方便,可以节约我们大量的工作。requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。默认安装好python之后,是没有安装requests模块的,需要单独通过pip安装(请先安装pip)
pip insatll request
- 编写py代码
# coding=utf-8
# face++ 人脸识别detect部分
import requests
import base64
import json
def file_base64(file_name):
with open(file_name, 'rb') as fin:
file_data = fin.read()
base64_data = base64.b64encode(file_data)
return base64_data
def post_pic():
url = 'https://api-cn.faceplusplus.com/facepp/v3/detect'
image_1 = file_base64('/home/dashuaibi/图片/1.jpg')
postData = {
'api_key': 'mTxxxxxxxxxxxxxxxxwuG',
'api_secret': 'uo3xxxxxxxxxxxxxxxxxxxxxxxxeb5',
'image_base64': image_1,
'return_attributes' : 'emotion'
}
back = requests.post(url, data = postData)
jres = json.loads(back.text)
print jres['faces'][0]['attributes']['emotion']
if __name__=="__main__":
post_pic()
- 运行后发现打印的是
{u'neutral': 60.45, u'sadness': 0.963, u'disgust': 0.104, u'anger': 3.324, u'surprise': 0.795, u'fear': 0.104, u'happiness': 34.26}
在loads后变成python变量时,元素都变成了单引号,并且字符串前加多了个u
json.loads()会在key前加上Unicode识别字符
但是只是提示作用而已 并不影响数据
- 编写业务逻辑
# coding=utf-8
# face++ 人脸识别detect部分
import requests
import base64
import json
def file_base64(file_name):
with open(file_name, 'rb') as fin:
file_data = fin.read()
base64_data = base64.b64encode(file_data)
return base64_data
def post_pic():
url = 'https://api-cn.faceplusplus.com/facepp/v3/detect'
image_1 = file_base64('/home/dashuaibi/图片/1.jpg')
postData = {
'api_key': 'mTtxxxxxxxxxxxxxwuG',
'api_secret': 'uo3xxxxxxxxxxxxxxJeb5',
'image_base64': image_1,
'return_attributes' : 'emotion'
}
back = requests.post(url, data = postData)
jres = json.loads(back.text)
#emotion各可能性
info = jres['faces'][0]['attributes']['emotion']
anger = info['anger']
disgust = info['disgust']
fear = info['fear']
happiness = info['happiness']
neutral = info['neutral']
sadness = info['sadness']
surprise = info['surprise']
emotion = [anger,disgust,fear,happiness,neutral,sadness,surprise]
emotion_name = ['愤怒','厌恶','恐惧','高兴','平静','伤心','惊讶']
print '您现在的表情是'+emotion_name[emotion.index(max(emotion))]
if __name__=="__main__":
post_pic()
- 输出结果 :
- 总结:
- python的库超级强大!!!!!!
- pip超级好用!!!!!
- 因为是linux的gedit手打,相当于记事本了,就懒得每一行写注释了嘿嘿
网友评论