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

使用PRAW调用Subreddit排序函数时传入timeFilter参数报错排查

问题原因及解决办法

核心问题有两个:

  • 参数名拼写错误:PRAW的排序方法中,时间过滤器的参数名是time_filter(下划线分隔),不是你写的timeFilter(驼峰式),这是触发报错的直接原因。
  • 并非所有排序函数都支持时间过滤器:只有top和controversial这两个排序方法接受time_filter参数,像你当前用的hot(sortingType=0)、new、rising这些方法本身就没有这个参数,强行传入也会报错。

修正后的代码示例:

sortingType = 0
timeFilterId = 0

sortingFunctionTypes = { 
    0 : 'hot',
    1 : 'top',
    2 : 'new',
    3 : 'rising',
    4 : 'controversial'
}   

timeFilters = {
    0 : "all",
    1 : "day",
    2 : "hour",
    3 : "month",
    4 : "week",
    5 : "year"
}

subreddit = self.reddit.subreddit(redditString)
sortingFunction = getattr(subreddit, sortingFunctionTypes.get(sortingType))

# 先构建基础参数,再根据排序类型决定是否添加time_filter
request_kwargs = {'limit': postLimit}
# 只有top(1)和controversial(4)支持time_filter
if sortingType in (1, 4):
    request_kwargs['time_filter'] = timeFilters.get(timeFilterId)

self.posts = sortingFunction(**request_kwargs)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 11:06:20