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

如何通过Stripe API获取所有卡片的发卡方列表?Python代码排查求助

问题分析与解决方案

能否通过Stripe API获取目标表格?

可以。Stripe API的Card对象包含id(对应你的Card_id)和issuer字段(需注意字段结构),完全能获取你需要的表格数据。

你的代码问题所在

  1. issuer字段解析错误:Stripe Card对象的issuer并非直接的字符串值,而是包含name等属性的字典对象。你直接判断source.issuer并添加到集合,实际拿到的是对象而非发卡方名称,逻辑判断的偏差导致无数据被添加。
  2. 缺失分页处理:stripe.Customer.list(limit=100)仅返回第一页的100个客户,若客户数量超过100,后续客户的卡片数据会被遗漏;同理list_sources也可能存在分页未处理的问题。
  3. 集合去重不符合需求:你用set()存储结果,最终只会返回不重复的发卡方名称,而非所有卡片的id与对应发卡方的完整表格数据。

修正后的代码

以下是可生成目标格式数据的代码:

import stripe

# 替换为你的Stripe API密钥
stripe.api_key = "your_api_key_here"

def get_card_details():
    card_details = []
    # 处理客户分页
    customers = stripe.Customer.list(limit=100)
    while customers:
        for customer in customers.data:
            # 处理客户卡片分页
            sources = stripe.Customer.list_sources(customer.id, object="card", limit=100)
            while sources:
                for source in sources.data:
                    # 提取卡片id和发卡方名称
                    card_id = source.id
                    # 正确解析issuer的name字段,处理字段不存在的情况
                    card_issuer = source.issuer.get("name") if source.issuer else "Unknown"
                    card_details.append({
                        "Card_id": card_id,
                        "Card_issuer": card_issuer
                    })
                # 获取下一页卡片数据
                sources = sources.next_page() if sources.has_more else None
        # 获取下一页客户数据
        customers = customers.next_page() if customers.has_more else None
    return card_details

if __name__ == "__main__":
    all_card_details = get_card_details()
    # 打印表格格式内容
    print("| Card_id | Card_issuer |")
    print("|---------|-------------|")
    for detail in all_card_details:
        print(f"| {detail['Card_id']} | {detail['Card_issuer']} |")

关键修正说明

  • 正确解析issuer字段:通过source.issuer.get("name")提取发卡方名称,同时兼容issuer字段不存在的场景。
  • 完整分页遍历:利用has_more和next_page()方法遍历所有客户与卡片数据,避免遗漏。
  • 保留全部卡片记录:用列表存储每一张卡片的id和对应发卡方信息,最终输出完整的表格内容,而非去重后的结果。

内容的提问来源于stack exchange,提问作者Cyriaque Thomas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:15:20