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

Python开发Telegram机器人:如何实现图片与对应文案匹配发送?

Telegram机器人:图片与对应文案不匹配问题修复

问题分析

你的代码中,每次循环都将整个caps列表赋值给caption字段,但Telegram Bot API的caption参数需要单个字符串而非列表。API会自动把列表转换成默认字符串形式(比如['1', '2', '3']),这就导致所有图片都显示同一个“文案”。

修复方案

需要同时遍历图片URL列表和文案列表,让每一张图片对应索引相同的文案。可以用Python的zip()函数配对两个列表的元素,确保每次循环取到一组对应的图片和文案。

修改后的代码

import requests
import time

base_url = "https://api.telegram.org/botnotgoingtodisplayforsafety/sendPhoto"

urls = [
    "https://cdn.mos.cms.futurecdn.net/ASHH5bDmsp6wnK6mEfZdcU.jpg",
    "https://hips.hearstapps.com/hmg-prod/images/small-fluffy-dog-breeds-maltipoo-66300ad363389.jpg?crop=0.668xw:1.00xh;0.151xw,0&resize=640:*",
    "https://media-cldnry.s-nbcnews.com/image/upload/t_fit-760w,f_auto,q_auto:best/streams/2013/May/130522/6C7536084-g-hlt-120105-puppy-423p.jpg"
]

caps = ["1", "2", "3"]

# 用zip配对urls和caps的对应元素
for url, cap in zip(urls, caps):
    time.sleep(1)  
    parameters = {
        "chat_id": "-notgoingtodisplayforsafety",
        "photo": url,
        "caption": cap  # 取当前配对的文案字符串
    }

    resp = requests.get(base_url, data=parameters)
    print(resp.text)

关键修改点

  • 使用zip(urls, caps)同时遍历两个列表,每次循环拿到一组对应的图片URL和文案
  • 将caption的值从整个列表caps改为当前循环的单个文案cap

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 10:44:57