gpt4 book ai didi

python - 为什么这个 python 请求每次都返回相同的值?

转载 作者:太空狗 更新时间:2023-10-30 02:30:08 24 4
gpt4 key购买 nike

我是第一次使用他们的 python 请求库,我很困惑。当我在 for 循环中使用不同的基本 URL 运行下面的函数时,它似乎收到了响应,但返回的内容对于两个 URL 是相同的。

如果我在浏览器中查看 API URL,就会发现两次返回的都是第一个 URL 的内容。我错过了什么?

base_urls = ['http://kaweki.wikia.com/','http://solarmovie.wikia.com/']


def getEdits(wikiObj, limit=500):
payload = {'limit': limit}
r = requests.get('{}api/v1/Activity/LatestActivity'.format(wikiObj),
params=payload)
edits = r.json()
return edits['items']

for url in base_urls:
print getEdits(url)

最佳答案

服务器端一个错误,会在一段时间内忽略缓存控制 header 等。

引入 5 秒(甚至更短的时间)的 sleep 可以解决该错误。我在下面标记了添加的行:


import requests
import json
from time import sleep #ADDED

base_urls = ['http://kaweki.wikia.com/', 'http://solarmovie.wikia.com/']


def getEdits(wikiObj, limit=500):
payload = {'limit': limit}
url = '{}api/v1/Activity/LatestActivity'.format(wikiObj)
r = requests.get(url, params=payload)
edits = json.loads(r.content)
return edits['items']

for url in base_urls:
print getEdits(url)
sleep(5) # ADDED

输出

[{u'article': 1461, u'revisionId': 14, u'user': 26127114, u'timestamp': 1424389645}, {u'article': 1461, u'revisionId': 13, u'user': 26127114, u'timestamp': 1424389322}, {u'article': 1461, u'revisionId': 12, u'user': 26127114, u'timestamp': 1424389172}, {u'article': 1461, u'revisionId': 5, u'user': 26127114, u'timestamp': 1424388924}]
[{u'article': 1461, u'revisionId': 14, u'user': 26127165, u'timestamp': 1424389107}, {u'article': 1461, u'revisionId': 7, u'user': 26127165, u'timestamp': 1424388706}]

关于python - 为什么这个 python 请求每次都返回相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28887310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com