python 电报机器人无法获取电影数据
python telegram bot can't get movie data
我正在尝试做一个电报机器人,它在发送 ['pm'] 时向用户显示热门电影。但是,我无法从机器人那里得到正确的信息。这是我的代码:
import os
import telebot
from dotenv import load_dotenv
import movies
load_dotenv()
API_KEYS = os.getenv("API_KEYS")
bot = telebot.TeleBot(API_KEYS)
pMovies = movies.mPopular
@bot.message_handler(commands=['Greet'])
def greet(message):
bot.reply_to(message, "Hey! Hows it going?")
@bot.message_handler(commands=['pm'])
def hello(message):
for p in pMovies:
pid = p[0]
ptitle = p[1]
poverview = p[2]
pvote_average = p[3]
prelease_date = p[4]
response = pid, '|',ptitle, '|', poverview, '|', pvote_average, '|', prelease_date
bot.send_message(message.chat.id, response)
bot.polling()
每当我在电报中键入 'pm' 时,我只会得到第一个电影 ID,而不是得到整个流行电影数据。如果你能帮我解决这个问题,我将不胜感激。
这是我收到的输出:
在这里bot.send_message(message.chat.id, list(response))
send_message 方法将第二个参数(即您的消息)作为字符串。但是你的响应变量是一个 tuple.
您可以将元组转换为字符串。
response = pid, '|',ptitle, '|', poverview, '|', pvote_average, '|', prelease_date
response_str=" ".join(response)
bot.send_message(message.chat.id, (response_str))
或
您可以直接创建响应字符串而不是元组。
response = f"{pid} | {ptitle} | {poverview} | {pvote_average} | {prelease_date}"
我正在尝试做一个电报机器人,它在发送 ['pm'] 时向用户显示热门电影。但是,我无法从机器人那里得到正确的信息。这是我的代码:
import os
import telebot
from dotenv import load_dotenv
import movies
load_dotenv()
API_KEYS = os.getenv("API_KEYS")
bot = telebot.TeleBot(API_KEYS)
pMovies = movies.mPopular
@bot.message_handler(commands=['Greet'])
def greet(message):
bot.reply_to(message, "Hey! Hows it going?")
@bot.message_handler(commands=['pm'])
def hello(message):
for p in pMovies:
pid = p[0]
ptitle = p[1]
poverview = p[2]
pvote_average = p[3]
prelease_date = p[4]
response = pid, '|',ptitle, '|', poverview, '|', pvote_average, '|', prelease_date
bot.send_message(message.chat.id, response)
bot.polling()
每当我在电报中键入 'pm' 时,我只会得到第一个电影 ID,而不是得到整个流行电影数据。如果你能帮我解决这个问题,我将不胜感激。
这是我收到的输出:
在这里bot.send_message(message.chat.id, list(response))
send_message 方法将第二个参数(即您的消息)作为字符串。但是你的响应变量是一个 tuple.
您可以将元组转换为字符串。
response = pid, '|',ptitle, '|', poverview, '|', pvote_average, '|', prelease_date response_str=" ".join(response)
bot.send_message(message.chat.id, (response_str))
或
您可以直接创建响应字符串而不是元组。
response = f"{pid} | {ptitle} | {poverview} | {pvote_average} | {prelease_date}"