如何在python3请求模块中只获取json文件的一部分



因此,我正在用Python编写一个程序,使用请求模块从google课堂API获取数据。我从课堂上得到了完整的json响应,如下所示:

{'announcements': [{'courseId': '#############', 'id': '###########', 'text': 'This is a test','state': 'PUBLISHED', 'alternateLink': 'https://classroom.google.com/c/##########/p/###########', 'creationTime': '2021-04-11T10:25:54.135Z', 'updateTime': '2021-04-11T10:25:53.029Z', 'creatorUserId': '###############'}, {'courseId': '############', 'id': '#############', 'text': 'Hello everyone', 'state': 'PUBLISHED', 'alternateLink': 'https://classroom.google.com/c/#############/p/##################', 'creationTime': '2021-04-11T10:24:30.952Z', 'updateTime': '2021-04-11T10:24:48.880Z', 'creatorUserId': '##############'}, {'courseId': '##################', 'id': '############', 'text': 'Hello everyone', 'state': 'PUBLISHED', 'alternateLink': 'https://classroom.google.com/c/##############/p/################', 'creationTime': '2021-04-11T10:23:42.977Z', 'updateTime': '2021-04-11T10:23:42.920Z', 'creatorUserId': '##############'}]}

事实上,我无法将其转换为一个漂亮的格式,所以我只是从http请求中粘贴它。我实际上想做的只是向服务请求最初的几条公告(比如1、2、3,根据需求而定(,而我得到的是自创建教室以来发布的所有公告(如示例3中的公告(。现在,我相信获取所有公告可能会使程序变得更慢,所以我更希望只获取所需的公告。有什么方法可以通过传递一些论点或其他什么来做到这一点吗?谷歌课堂提供了一些直接的功能,但我后来发现了这些功能,并且已经使用请求模块编写了所有内容,这需要更改很多我想避免的事情。然而,如果不可避免的话,我也会走那条路。

答案:

使用pageSize字段限制announcements: list请求中所需的响应数,orderBy参数为updateTime asc

更多信息:

根据文件:

orderBy:string

结果的可选排序顺序。逗号分隔的字段列表,其中包含可选的排序方向关键字。支持的字段为updateTime。支持的方向关键字为ascdesc。如果未指定,则默认行为为updateTime desc。示例:updateTime ascupdateTime

和:

pageSize:integer

要返回的最大项目数。零或未指定表示服务器可以分配最大值。

因此,假设您想要课程的前3个公告,您将使用3pageSizeupdateTime asc:的orderBy

# Copyright 2021 Google LLC.
# SPDX-License-Identifier: Apache-2.0
service = build('classroom', 'v1', credentials=creds)
asc = "updateTime asc"
pageSize = 3
# Call the Classroom API
results = service.courses().announcements().list(pageSize=3, orderBy=asc ).execute()

或者HTTP请求示例:

GET https://classroom.googleapis.com/v1/courses/[COURSE_ID]/announcements
?orderBy=updateTime%20asc
&pageSize=2
&key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json

参考文献:

  • 方法:announcements.list |课堂API |谷歌开发者

相关内容

  • 没有找到相关文章

最新更新