百度easydl api调用
开发环境ubuntu16.04+python
今天尝试将easydl上训练好的模型,通过api布置到共有云上,布置起来也挺顺手的,参考文献,写详细的。就是demo里面有点问题不太明白。
base64 数据的读取
官方给得demo里面关于这一点很模糊?
params = “{"image":"sfasq35sadvsvqwr5q…","top_num":"5"}”
然后….运行失败,强烈建议在demo里面写清楚…
1
2
3
4
5
6
7
8
9
10
11
12
def getByte(path):
'''
将图片读入
由于要发送json,所以需要对byte进行str解码
具体原因可见参考文档https://ai.baidu.com/ai-doc/EASYDL/Sk38n3baq
'''
with open(path, 'rb') as f:
img_byte = base64.b64encode(f.read())
img_str = img_byte
return img_str
img_str = getByte('/home/danoao/图片/1.jpg')
json格式的数据发送与解析
1
2
3
4
5
6
7
8
9
10
11
# 默认数据格式
data = {'image':img_str, "top_num": 5}
json_mod = json.dumps(data)
#读取的tokne
access_token = 'xxxxx'
request_url = request_url + "?access_token=" + access_token
res = requests.post(request_url, data=json_mod)
a=json.loads(res.text)
#解析出来results数据
c=a["results"]
print(c)
包含的python库与环境
1
2
3
4
5
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import requests
import json
import base64