如何通过 Stack Exchange API 获得特定用户的答案?

How can I get the answers for specific users via the Stack Exchange API?

我想统计特定用户在特定时间内的答案数量 range.I 但是找不到那些人的答案。以下脚本没有 return 任何内容:

from stackapi import StackAPI
from pprint import pprint
user_list = [12153576, 11148139]
SITE = StackAPI('Whosebug')
answers = SITE.fetch('answers',fromdate=1591488000, todate=1591747200)
user_ids = SITE.fetch("users/{ids}", ids=user_list)
for user in user_ids['items']:
    for ans in answers['items']:
        if user['user_id'] == ans['owner']['user_id']:
            pprint(ans['owner']['display_name'])

答案确实存在,但是,例如:user 12153576's answer and

提出以下解决方案

from stackapi import StackAPI
from pprint import pprint
from datetime import datetime, timedelta
user_list = [12153576, 11148139]
fromdate=1591488000
cnt = 0    
SITE = StackAPI('Whosebug')

answers = SITE.fetch('users/{ids}/answers', ids=user_list)
for ans in answers['items']:
    if (ans['creation_date']) > fromdate:
        cnt = cnt + 1
print("cnt:", cnt)

您应该使用您提到的 answers on users(又名 users/{ids}/answers)。将fromdate参数传递给请求后,你应该得到返回的items的长度。

目前,Stack Exchange 和 total will always be 0 存在错误。您可以使用 len,而不是计数器和 for 循环,因为它们会使脚本效率低下。

from stackapi import StackAPI

user_list = [12153576, 11148139]
fromdate = 1591488000
SITE = StackAPI('Whosebug')

answers = SITE.fetch('users/{ids}/answers', ids = user_list, fromdate = fromdate)
print(len(answers['items']))