在同一个脚本python中使用来自一个请求的第二个url请求的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在同一个脚本python中使用来自一个请求的第二个url请求的数据相关的知识,希望对你有一定的参考价值。

到目前为止,我收集Id's的第一个请求。然后我想使用返回draftgroupid插入第二个url请求。是否可以在同一个脚本中发送两个请求,如果是这样,我将如何在第二个url请求中执行for i in range(draftgroupid)

import requests
import json

req1 = requests.get(url="https://www.draftkings.com/lobby/getcontests?sport=NHL")
req.raise_for_status()
data = req.json()

for i, contest in enumerate(data['DraftGroups']):
    draftgroupid = contest['DraftGroupId']

Output of draftgroupid: 16901 16905 16902 16903

req2 = requests.get(url="https://api.draftkings.com/draftgroups/v1/draftgroups/THEVALUEIWANTTOLOOPTHROUGH/draftables?format=json")

编辑

import csv
import requests
import json

req = requests.get(url="https://www.draftkings.com/lobby/getcontests?sport=NHL")
req.raise_for_status()
data = req.json()

for i, contest in enumerate(data['DraftGroups']):
    draftgroupid = contest['DraftGroupId']
    req2 = requests.get(url="https://api.draftkings.com/draftgroups/v1/draftgroups/" + str(draftgroupid) + "/draftables?format=json")
    data2 = req2.json

    for i, player_info in enumerate(data2['draftables'][0]):
        date = player_info['competition']['startTime']
        print(date)

跑进TypeError: 'method' object is not subscriptable

答案

据我所知,你的问题与字符串操作有关,而不是与request库有关。

基本上,

import requests
import json

 req1 = requests.get(url="https://www.draftkings.com/lobby/getcontests?sport=NHL")
 req.raise_for_status()
 data = req.json()

 for i, contest in enumerate(data['DraftGroups']):
     draftgroupid = contest['DraftGroupId']
     requests.get(url="https://api.draftkings.com/draftgroups/v1/draftgroups/" + str(draftgroupid) + "/draftables?format=json")

应该做的工作。

可以在http://www.pythonforbeginners.com/concatenation/string-concatenation-and-formatting-in-python找到更优雅的连接字符串的方法

编辑

例如,

"some string " + str(123)
"some string %d" % 123
"some string %s" % 123

都会给出相同的输出。有更多方法可以连接字符串。您只需根据上下文选择最合适的选择。

另一答案
for i, contest in enumerate(data['DraftGroups']):
    draftgroupid = contest['DraftGroupId']
    req2 = requests.get(url="https://api.draftkings.com/draftgroups/v1/draftgroups/%d/draftables?format=json" % draftgroupid)

我假设你实际上并不是你在问题中所说的for i in range(draftgroupid),因为这意味着要发出16901个请求,然后是16905个请求(除了最后四个之外的所有请求都是第一批的重复),然后是16902个请求(其中一切都是重复的)等。

以上是关于在同一个脚本python中使用来自一个请求的第二个url请求的数据的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 中的第二个视图不会显示来自 JSON 的解析数据

如何使用 shell/perl 脚本获取一个月的第二个星期六? [关闭]

与powershell的第二个浏览器选项卡进行交互

如何在Ajax的第二个请求中修复数据库中插入的0值?

如何根据 sencha 中 json 响应的第一个组合值填充第二个组合

如何将来自一个 JSON 请求的数据用于第二个 JSON 请求?