如何解决Python Tweepy Bot,可从 json 文件中随机发送图像和相应的文本标题
我正在尝试创建一个 Twitter 机器人,它每 30 分钟从一个 json 文件中发送一个随机标题和相应的图像。到目前为止,我有:
import tweepy
from time import sleep
import random
import json
with open('test.json','r') as f:
info = json.load(f)
print('Twitter Bot')
CONSUMER_KEY = 'XXXXXX'
CONSUMER_SECRET = 'XXXXXX'
ACCESS_KEY = 'XXXXXX'
ACCESS_SECRET = 'XXXXXX'
auth = tweepy.OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY,ACCESS_SECRET)
api = tweepy.API(auth)
randomChoice = random.randrange(len(info))
print (info[randomChoice])
api.update_status(status=info[randomChoice])
Json 文件:
[
{
"text": "hi","image": "/image1.jpg"
},{
"text": "hello","image": "/image2.jpg"
}
]
但推文只显示:{'text': 'hello','image': '/image2.jpg'}。我怎样才能让它只显示图像和文本?另外,我如何设置它以便每 30 分钟发生一次?我是编程新手,希望得到任何帮助!
解决方法
你需要类似的东西:
api.update_with_media(info[randomChoice]['image'],status=info[randomChoice]['text'])
但是,您需要确保:
- 图像文件位于当前工作目录中,或
- 您提供图像文件的完整路径。
要处理每 30 分钟运行一次,您可以使用 the schedule
module:
import schedule
import time
def job():
print("I'm working...")
# your tweepy code here
schedule.every(30).minutes.do(job)
while True:
schedule.run_pending()
time.sleep(1)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。