一、json
使用 Json 函数需要导入 json 库:import json
I. 数据类型转化对照表
- Python 转 Json
Python | Json |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float | number |
True | true |
False | false |
None | null |
- Json 转 Python
Json | Python |
---|---|
array | list |
其余同上 |
II. 函数
1 | json.dumps(对象) | 将 Python对象编码成 Json字符串 |
---|
result = json.dumps([10, 'abc', True, None])
print(type(result), result)
结果:
<class 'str'> [10, "abc", true, null] # '[10, "abc", true, null]'
2 | json.loads(字符串[, encoding]) | 将 Json字符串解码为 Python对象 |
---|
message = '{"name": "张三", "age": 18, "sex": null, "marry": true}'
content = json.loads(message, encoding='utf-8')
print(type(content), content)
结果:
<class 'dict'> {'name': '张三', 'age': 18, 'sex': None, 'marry': True}
3 | json.dump(对象,文件对象) | 将 Python对象编码成 Json字符串,写入指定文件对象中 |
---|
all_student = [
{'name': '小明', 'age': 12, 'tel': '1237736'},
{'name': 'yuting', 'age': 18, 'tel': '23333'}
]
with open('student.json', 'w', encoding='utf-8') as f:
json.dump(all_student, f) # 相当于 f.write(json.dumps(all_student))
4 | json.load(文件对象, encoding) | 将 Json文件中的 Json字符串读出,并解码为 Python对象 |
---|
with open('data.json', encoding='utf-8') as f:
result = json.load(f) # 相当于 result = json.loads(f.read())
print(type(result), result['msg'])
结果:
<class 'dict'> 成功!
二、requests
I. 安装
File -> Settings ->Project -> Project Interpreter -> + (添加) -> 搜索requests -> Install Package
II. 方法
get(url, params=None) | |
---|---|
url | 字符串,需要获取的数据的接口地址 |
params | 字典,参数列表(给服务器发送请求的时候需要传给服务器的数据) |
注(完整的接口):
https://www.apiopen.top/meituApi?page=1
协议 ://主机地址 /路径 ?参数名1=值1 &参数名2=值2
- 发送请求,并且获取返回的数据(服务返回的数据叫响应)
response = requests.get('https://www.apiopen.top/meituApi?page=1')
response 类型:
<class 'requests.models.Response'>
- 从响应中获取数据
- 获取json数据
gx_json = response.json() # 会自动将json数据转换成python对应的数据
gx_json 类型:
<class 'dict'>
- 获取字符串数据
gx_text = response.text
gx_text 类型:
<class 'str'>
- 获取二进制数据(原始数据)
gx_bytes = response.content
gx_bytes 类型:
<class 'bytes'>
三、exception
1. 异常捕获
I. try - except
(可以捕获所有类型的异常 - 只要代码段1中出现了异常就捕获)
语法格式:
try:
代码段1(可能会出现异常的代码段)
except:
代码段2(出现异常后处理异常的代码段)
其他语句
II. try - except 错误类型
(捕获指定类型的异常 - 只有代码段1中出现了指定类型的异常才捕获)
语法格式:
try:
代码段1(可能会出现异常的代码段)
except 错误类型:
代码段2(出现异常后处理异常的代码段)
其他语句
III. try - except (错误类型1,错误类型2...)
(同时捕获多种指定异常)
语法格式:
try:
代码段1(可能会出现异常的代码段)
except (错误类型1,错误类型2...):
代码段2(出现异常后处理异常的代码段)
其他语句
IV. try - except 错误类型1 - except 错误类型2...
(同时捕获多种异常,可以对不同的异常做不同的处理)
语法格式:
try:
代码段1(可能会出现异常的代码段)
except 错误类型1:
代码段2
except 错误类型2:
代码段3
其他语句
2.抛出异常
主动让程序奔溃
raise 错误类型
(程序执行到这句代码就出现指定类型的异常!)
说明:错误类型 - 可以是系统提供的错误类型, 也可以是自定义错误类型(要求这个值必须是一个类,而且是Exception的子类)
网友评论