如何在Python中向Telegram Bot接口传递字符串变量?
解决方案
没问题,我来帮你调整代码,同时还能优化一下现有逻辑:
首先,你当前处理coindelta接口响应的代码有点冗余——response1.text本身就是完整的字符串,完全不需要循环逐个字符拼接,直接赋值给str1就行。
然后,发送Telegram消息时,不建议直接把str1拼在URL里,因为如果str1包含特殊字符(比如空格、&、=这类),会导致URL解析错误,消息发送失败。推荐用requests.get的params参数来传递参数,requests会自动帮我们处理URL编码,更安全可靠。
修改后的完整代码如下:
import requests # 从coindelta接口获取数据 response1 = requests.get('https://coindelta.com/api/v1/public/getticker/') # 直接获取响应文本,无需多余的拼接操作 str1 = response1.text # 发送消息到Telegram Bot,用params参数传递请求参数 telegram_api_url = 'https://api.telegram.org/botXXXXtokenXXXX/sendMessage' request_params = { 'chat_id': 'XXXXXXXX', 'text': str1 } r = requests.get(telegram_api_url, params=request_params)
额外优化建议(可选)
如果coindelta返回的是JSON格式数据,你可以把它转换成更易读的格式化文本再发送,比如:
# 将JSON响应转换成带缩进的友好格式文本 data = response1.json() str1 = requests.utils.dumps(data, indent=2)
这样发送到Telegram的消息会更整齐,方便查看。
内容的提问来源于stack exchange,提问作者sanghmitra
相关产品推荐
相关产品推荐

