用python代码实现调用百度的免费植物识别接口

# coding=utf-8
import requests
import base64
import unittest
import time
class WordScanTest(unittest.TestCase):     # unittest.TestCase类的函数要在函数名称前加个test
    def setUp(self):
        token_url = "https://aip.baidubce.com/oauth/2.0/token"
        params_token = {"grant_type": "client_credentials", "client_id": "8OV91RvG4wYt5stCpUsaVEuE",
                   "client_secret": "ZqWAkGBo2vOTQx3Tsv5gDI68nAAlSB5j"}
        response_token = requests.post(token_url, data=params_token)
        self.access_token = response_token.json()["access_token"]   # 获取token
        self.url = "https://aip.baidubce.com/rest/2.0/image-classify/v1/plant"

    def test_wordScan(self):    # unittest.TestCase类的函数要在函数名称前加个test。参数正确
        f = open(r"C:\Users\Torres\Desktop\bohe.png", "rb")  # r是read,b是用二进制方式
        img = base64.b64encode(f.read())
        params = {"image": img}
        request_url = self.url + "?access_token=" + self.access_token
        headers = {"Content-Type": "application/x-www-form-urlencoded"}
        response = requests.post(request_url, data=params, headers=headers)
        result = response.json()
        self.assertEqual(result["result"][0]["name"], u"\u8584\u8377")  # Unicode编码\u8584\u8377 是薄荷
        self.assertEqual(result["result"][1]["name"], u"\u7559\u5170\u9999")   # \u8377\u82b1 是留兰香
        self.assertEqual(result["result"][2]["name"], u"\u98ce\u8f6e\u83dc")    # \u98ce\u8f6e\u83dc是风轮菜
        time.sleep(1)

    def test_wordScan_params_error(self):
        f = open(r"C:\Users\Torres\Desktop\key.txt", "rb")  # 参数(图片)错误
        img = base64.b64encode(f.read())
        params = {"image": img}
        request_url = self.url + "?access_token=" + self.access_token
        headers = {"Content-Type": "application/x-www-form-urlencoded"}
        response = requests.post(request_url, data=params, headers=headers)
        result = response.json()
        # self.assertEqual(result["log_id", "1029526340702707918"])
        self.assertEqual(result["error_code"], 216201)
        self.assertEqual(result["error_msg"], "image format error")
        time.sleep(1)

    def test_wordScan_no_params(self):  # 缺少参数
        request_url = self.url + "?access_token=" + self.access_token
        headers = {"Content-Type": "application/x-www-form-urlencoded"}
        response = requests.post(request_url, headers=headers)  
        result = response.json()
        self.assertEqual(result["error_code"], 216101)
        self.assertEqual(result["error_msg"], "param image not exist")


if __name__ == "__main__":
    unittest.main()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值