我目前正在制作一个遍历json文件中每个条目(subreddit和discord频道ID)的循环。
for subreddit_name, channel_id in available_streams.items():
get_channel = guild.get_channel(channel_id)
print(f"{subreddit_name}: #{get_channel}")
subreddit = reddit.subreddit(subreddit_name)
for submission in subreddit.stream.submissions():
try:
except Exception as e:
第一个循环运行良好(显示了字典中的所有键和值)。但是,当subreddit_name
转到下一个for循环时,仅使用第一项,这意味着仅流式传输来自一个subreddit的帖子。我的代码中有什么问题让它仅考虑第一个条目吗?
您可以遍历键,然后在循环内分配值
outerDict = dict() # Assume there's more dicts in there like you want
for a in outerDict:
element_value_inside_outerDict = outerDict.get(a)
# Some code for whatever you want to do with it
for b in element_value_inside_outerDict:
value_inside_innerDict = element_value_inside_outerDict.get(b)
也许会解决
如果使用的是PRAW,则不应将流放入循环中。
subreddit.stream.submissions()将继续无限期地传输,并且for循环将永远不会移到下一个项目。
您应尝试使用其他方法,例如异步流式传输或仅从subreddit中检索最后x个帖子。或者,您也可以在满足条件时在第二个循环中使用break。
for subreddit_name, channel_id in available_streams.items():
get_channel = guild.get_channel(channel_id)
print(f"{subreddit_name}: #{get_channel}")
subreddit = reddit.subreddit(subreddit_name)
for submission in subreddit.new(limit=10):
try:
print(submission.title)
except Exception as e:
print(f"Couldn't retrieve submission title '{submission}': {e}")