You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用boto3实现Route53Domains分页查询注册域名的问题

解决Route53域名分页查询问题

我来帮你搞定这个分页查询的问题!Route53的list_domains接口确实支持分页,你之前的问题应该是没正确处理Marker的循环传递。下面是调整后的代码,完美实现每页20条的查询:

#!/usr/bin/env python
import boto3
import json

listofdomains = []
client = boto3.client('route53domains', region_name='us-east-1')
next_marker = None

while True:
    # 构造请求参数,只有当next_marker存在时才传入Marker参数
    request_params = {'MaxItems': '20'}
    if next_marker:
        request_params['Marker'] = next_marker
    
    response = client.list_domains(**request_params)
    
    # 处理当前页的域名
    for domain in response['Domains']:
        domain_name = domain['DomainName']
        listofdomains.append(domain_name)
        print(domain_name)
    
    # 检查是否有下一页,如果没有就退出循环
    next_marker = response.get('NextMarker')
    if not next_marker:
        break

finallist = json.dumps(listofdomains)
print(finallist)  # 注意:如果用Python2,改成print finallist即可

关键说明:

  • 分页核心逻辑:通过循环传递Marker参数实现分页,每次请求的Marker值来自上一次响应的NextMarker,直到响应中没有NextMarker表示所有域名已查询完毕
  • 每页条数控制:把MaxItems设为'20'(这个参数需要传字符串类型,boto3内部会自动处理类型转换)
  • 兼容性处理:代码兼顾了Python2和Python3的打印语法,你可以根据自己的环境调整
  • 健壮性拓展:如果需要更稳定的运行,可以添加try-except块捕获API调用异常,比如权限不足、网络波动等情况

内容的提问来源于stack exchange,提问作者Dwight S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:25:03