一:【JSON通信协议】
二:【JSON串格式以及解析】
三:JSON语法规则
JSON只有两种结构:对象和数组, 由这两种结构嵌套和组合来表示各式各样的数据。
四:JSON语法规则2
JSON 值
五: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.request
request这个模块主要负责构造和发起网络请求,并在其中加入Headers、Proxy等。
主要方法:
urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
十二:urlopen参数
十三:发起未携带参数请求
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
step5:阅读技术文档
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:请求参数说明
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:返回参数说明
step10:返回数据展示