百度AI开放平台

时间:2022-10-15 07:21:02

一:【JSON通信协议】  

 Json请求串:

{

  'user_name':'zhangsan',

  'pwd':123456,

  'code':'5632', 

}

以json的形式来传递数据

该请求串协议表示登入向服务器发送的信息

二:【JSON串格式以及解析】

JSON是什么

JSON 指的是 JavaScript 对象表示法( Java Script Object Notation)
JSON 是轻量级的文本数据交换格式
JSON特点
JSON 独立于语言和平台
JSON 具有自我描述性,更易理解
JSON 易于机器解析和生成,并且易于书写和阅读
JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 跟XML一样独立于语言和平台。

三:JSON语法规则

JSON只有两种结构:对象和数组, 由这两种结构嵌套和组合来表示各式各样的数据。

数据对象由一系列的属性/值对来表示

数据对象和属性/值对由逗号分隔

花括号保存对象

方括号保存数组

百度AI开放平台

百度AI开放平台

四:JSON语法规则2

JSON 值

JSON 值可以是:

数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null

百度AI开放平台

五:JSON示例

{ "employees": 
        [
          { "firstName":"Bill" , 				     "lastName":"Gates" }, 
          { "firstName":"George" ,   	  	  	     "lastName":"Bush" }, 
          { "firstName":"Thomas" , 		 		     "lastName":"Carter" } 
         ] 
 }

这个 employees 对象是包含 3 个员工记录(对象)的数组

六:JSON解析str  to Json/DICT

import json
str = '{"accessToken": "521de21161b23988173e6f7f48f9ee96e28", "User-Agent": "Apache-HttpClient/4.5.2 (Java/1.8.0_131)"}'

j = json.loads(str)
print(j)
print(type(j))

七:JSON解析Json to str

import json
j = {"accessToken": "521de21161b23988173e6f7f48f9ee96e28", "User-Agent": "Apache-HttpClient/4.5.2 (Java/1.8.0_131)"}

str = json.dumps(j)
print(str)
print(type(str))

八:JSON解析Object to json

import json
 def object_to_json(self, obj):
        obj_dict = obj.__dict__
        my_obj_json = json.dumps(obj_dict)

 1、将对象转换成字典

 2、将字典转换为json对象

九:JSON解析 str to Json to Object

import json
    def json_to_object(self, obj_str):
        obj_json = json.loads(obj_str)
        # 新建一个新的MyClass对象
        my_object = BaiFuturesStrategyInfo()
        # 将字典转化为对象
        my_object.__dict__ = obj_json

1、字符串转换成json对象2、新建一个实例对象

3、将json赋值给对象的__dict__属性

十:【Python urllib模块】

urllib模块

urllib是Python中请求url连接的官方标准库

主要模块:

1、request: #请求

2、response # 返回

3、parse # 格式画

4、error # 错误

十一:urllib.request

request这个模块主要负责构造和发起网络请求,并在其中加入Headers、Proxy等。

主要方法:

urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

十二:urlopen参数

url:  需要打开的网址

data:提交的数据

timeout:设置网站的访问超时时间

urlopen返回对象提供方法:

read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作

info():返回HTTPMessage对象,表示远程服务器返回的头信息

getcode():返回Http状态码。如果是http请求,200请求成功完成 ; 404网址未找到

geturl():返回请求的url

十三:发起未携带参数请求

from urllib import request

resp = request.urlopen('http://www.baidu.com')

print(resp.read().decode())

访问的结果会是一个http.client.HTTPResponse对象,使用此对象的read()方法,则可以获取访问网页获得的数据。但是要注意的是,获得的数据会是bytes的二进制格式,所以需要decode()一下,转换成字符串格式。

十四:百度AI开放平台简介

百度AI开放平台提供全球领先的语音、图像、NLP等多项人工智能技术,开放对话式人工智能系统、智能驾驶系统两大行业生态,共享AI领域最新的应用场景和解决方案

https://ai.baidu.com/?track=cp:aipinzhuan|pf:pc|pp:AIpingtai|pu:title|ci:|kw:10005792

十五: 百度AI开放平台使用

step1:拥有一个百度账号(网盘)

step2:完成登录

step3:完成信息认证采集

step4:创建一个应用Application

百度AI开放平台

百度AI开放平台

step5:阅读技术文档

百度AI开放平台

step6:通过AK、SK获取access_token

# encoding:utf-8

import requests

# client_id 为官网获取的AK, client_secret 为官网获取的SK

host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'

response = requests.get(host)

if response:

    print(response.json())

step7:请求参数说明

百度AI开放平台

step8:请求代码

# encoding:utf-8
import requests
import base64
request_url = "https://aip.baidubce.com/rest/2.0/image-classify/v2/dish"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())
params = {"image":img,"top_num":5}
access_token = '[调用鉴权接口获取的token]'
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
if response:
    print (response.json())

step9:返回参数说明

百度AI开放平台

step10:返回数据展示    

百度AI开放平台

十六:人脸注册

点击注册按钮,弹出输入框输入用户名
打开摄像头(内置或外接都可以)采集一张人像
判断采集的图像中是否含有人像;
含有人像后注册要防止撞脸;
注册成功后,用户名写入本地user.txt文件中,图片保存到本地项目img文件夹下

十七:人脸登录

点击登录按钮,打开摄像头
按下空格键采集一张人像图片
判断采集的图像中是否含有人像
判断是否是已注册用户
登录成功
登录成功后跳转到菜品识别窗口。