如何通过 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']))
我想统计特定用户在特定时间内的答案数量 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']))