如何在 Python API 调用中动态更改参数
How do I dynamically change a parameter in a Python API call
我正在尝试在 Python 中的 API 调用中动态更改页面参数,以便我可以访问我在 Vimeo 上的文件的所有 JSON 数据。我不明白的是如何动态更改参数而不是硬编码数字。正如您在下面的代码中看到的,'page' 是 3,但我不明白如何插入参数,因此我可以遍历页面并获取每个页面的 JSON 数据。感谢您的帮助。
uri = 'https://api.vimeo.com/me/videos'
# Asking the JSON to only get the two fields we are interested in
response = v.get(uri, params={'fields': 'name, uri', 'page': 3, 'per_page': 100})
这里是APIreturn的一部分。
{
'total': 3278,
'page': 1,
'per_page': 100,
'paging': {
'next': '/me/videos?fields=name%2C%20uri&per_page=100&page=2',
'previous': None,
'first': '/me/videos?fields=name%2C%20uri&per_page=100&page=1',
'last': '/me/videos?fields=name%2C%20uri&per_page=100&page=33'
},
'data': [
{
'uri': '/videos/356967749',
'name': 'Connecting Smallholder Farmers to Science'
},
{
'uri': '/videos/356880620',
'name': 'pro_test_upload'
},
{
'uri': '/videos/356880402',
'name': 'Amazing Apollo Stories with Charles Fishman'
},
{
'uri': '/videos/356728892',
'name': 'tot_190829'
},
{
'uri': '/videos/356481229',
'name': 'com_acw_johnson.mov'
},
...
}
使用第一页获取结果总数,然后使用该值分页:
import math
uri = 'https://api.vimeo.com/me/videos'
first_page = requests.get(
uri,
params={
'fields': 'name, uri',
'page': 1,
'per_page': 100}).json()
total_pages = math.ceil(first_page["total"] / first_page["per_page"])
for page in total_pages:
response = requests.get(
uri,
params={
'fields': 'name, uri',
'page': page,
'per_page': 100})
# do things
我正在尝试在 Python 中的 API 调用中动态更改页面参数,以便我可以访问我在 Vimeo 上的文件的所有 JSON 数据。我不明白的是如何动态更改参数而不是硬编码数字。正如您在下面的代码中看到的,'page' 是 3,但我不明白如何插入参数,因此我可以遍历页面并获取每个页面的 JSON 数据。感谢您的帮助。
uri = 'https://api.vimeo.com/me/videos'
# Asking the JSON to only get the two fields we are interested in
response = v.get(uri, params={'fields': 'name, uri', 'page': 3, 'per_page': 100})
这里是APIreturn的一部分。
{
'total': 3278,
'page': 1,
'per_page': 100,
'paging': {
'next': '/me/videos?fields=name%2C%20uri&per_page=100&page=2',
'previous': None,
'first': '/me/videos?fields=name%2C%20uri&per_page=100&page=1',
'last': '/me/videos?fields=name%2C%20uri&per_page=100&page=33'
},
'data': [
{
'uri': '/videos/356967749',
'name': 'Connecting Smallholder Farmers to Science'
},
{
'uri': '/videos/356880620',
'name': 'pro_test_upload'
},
{
'uri': '/videos/356880402',
'name': 'Amazing Apollo Stories with Charles Fishman'
},
{
'uri': '/videos/356728892',
'name': 'tot_190829'
},
{
'uri': '/videos/356481229',
'name': 'com_acw_johnson.mov'
},
...
}
使用第一页获取结果总数,然后使用该值分页:
import math
uri = 'https://api.vimeo.com/me/videos'
first_page = requests.get(
uri,
params={
'fields': 'name, uri',
'page': 1,
'per_page': 100}).json()
total_pages = math.ceil(first_page["total"] / first_page["per_page"])
for page in total_pages:
response = requests.get(
uri,
params={
'fields': 'name, uri',
'page': page,
'per_page': 100})
# do things