(1)使用步骤
简单介绍一下Requests库步骤。
#1.导入requests库
import requests
#2.准备接口三要素
# 2.1 明确请求地址
url = "http://127.0.0.1:8000/api/departments/"
# 2.2 明确请求参数
# 2.3 发送请求+请求方式
response = requests.get(url=url)
# 查看返回值
print(response)
# 举例:
# 1.导入requests库
import requests
# 2.使用requests库
# 发送请求
response = requests.get('https://api.github.com/events')
# 查看结果
print(response.status_code)
print(response.headers['content-type'])
print(response.encoding)
print(response.json())
(2)示例练习:
"""
1.学习目标
必须掌握requests库的基本使用
2.操作步骤
# 1.导入requests库
# 2.明确请求地址
# 3.明确请求参数
# 4.发送请求
3.需求
使用requests库来请求学生管理系统一查询所有学院接口
4.总结
返回值的获取
response.text # 获取返回值文本(将返回值以文本格式显示)
response.json() # 获取json格式的返回值,对于返回值类型为json格式比较友好
response.status_code # 获取状态码---HTTP协议响应状态码
response.headers # 获取响应头
response.content # 获取响应源码(多用于爬虫)
5.json和python转化
json.dumps(需要转换的python对象,indent=2,ensure_ascii=False)
indent 表示格式化输出时缩进
ensure_ascii=False 表示对非ascii字符不做转化
"""
# 1.导入requests库
import requests
import json
# 2.明确请求地址
url = "http://127.0.0.1:8000/api/departments/"
# 3.明确请求参数
# 没有参数不用写
# 4.发送请求
response = requests.get(url=url)
# print(response)
# 结果:<Response [200]>
# 5.获取返回值内容
res = response.json() # 会获得一个字典格式的对象
print(type(res))
# 6.python字典转换为json字符串
# 使用json库实现
# 将python对象转换为json字符串
result = json.dumps(res, indent=2, ensure_ascii=False)
print(type(result)) # 字符串类型
print(result)
# json.loads() # 将json字符串转换为python对象
(3)说明:Json数据和Python对象互相转化。
Python3 中可以使用 Json模块来对 JSON 数据进行编解码,它主要提供了四个方法: dumps
、dump
、loads
、load
。
dump
方法和dumps
方法说明:
dump
方法和dumps
方法对Python
对象进行序列化,将一个Python
对象进行JSON
格式的编码。
json.dumps(obj, *,
skipkeys=False,
ensure_ascii=True,
check_circular=True,
allow_nan=True,
cls=None,
indent=None,
separators=None,
default=None,
sort_keys=False,
**kw)
说明dumps
方法中常用的几个参数:
-
obj
:表示是要序列化的对象。 -
ensure_ascii
:默认值为True
,用来控制生成的JSON字符串的编码,能将所有传入的非ASCII字符转义输出。如果ensure_ascii
为False
,保持原有编码,则这些字符将按原样输出。 -
indent
:可以用来控制JSON字符串的换行和缩进效果,默认值为None
。如果
indent
是非负整数或字符串,那么JSON数组元素和对象成员将使用该缩进级别进行输入;indent
为0、负数或“”
仅插入换行符;indent
使用正整数缩进多个空格;如果
indent
是一个字符串(例如“\t”),则该字符串用于缩进每个级别。 -
sort_keys
:默认值为False
,如果sort_keys
为True
,则字典的输出将按键值排序。
其他参数看源码即可,源码中对dumps
方法中的每个参数都有详细的说明。
load
方法和loads
方法说明:
load
方法和loads
方法对Python
对象进行反序列化方法,将JSON
格式数据解码为Python
对象。
json.loads(s, *,
encoding=None,
cls=None,
object_hook=None,
parse_float=None,
parse_int=None,
parse_constant=None,
object_pairs_hook=None,
**kw):
说明loads
方法中常用的几个参数:
-
s
:将s(包含JSON文档的str
,bytes
或bytearray
实例)反序列化为Python对象。 -
encoding
:指定一个编码的格式。
其他参数看源码即可,源码中对loads
方法中的每个参数都有详细的说明。
注意:如果进行反序列化(解码)的数据不是一个有效的
JSON
文档,将会引发JSONDecodeError
异常。
Python对象与 Json数据类型转换:
Python对象转Json数据:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float, int-&float-derived emuns | number |
True | true |
False | false |
None | null |
Json数据转Python对象
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
网友评论