方法对象不是可下标的Python
遇到方法对象不是可下标的Python,python,Python,遇到TypeError:“method”对象不可下标 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']): draftg
TypeError:“method”对象不可下标
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)
draftgroupid的输出:
16901
16905
16902
16903
我想知道这是否可能是第二个while循环?您应该调用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() # Note that this line was changed
for i, player_info in enumerate(data2['draftables']): # Removed [0]
date = player_info['competition']['startTime']
print(date)
req2.json
是一种方法,您不会将其称为“我想知道它是否可能是第二个while循环?”。您的代码不包含任何while循环。它用于enumerate(data2['draftables'][0])中的i,player_信息:当您在函数名末尾去掉括号,如data2=req2.json
中所示时,您最终得到的是方法对象本身,而不是调用方法的结果。data2=req2.json
将json
方法分配给data2
变量。要调用这个方法,您应该包括()
,这样它的req2.json()
在做了建议的更改后,我会收到一个类型错误:这行的字符串索引必须是整数date=player\u info['competition']['startTime']
@MichaelTJohnson可能,player\u info不是字典。使用type
方法检查播放器信息的类型。i、 e:打印(键入(玩家信息))
。如果输出不是dictdict
,则不能使用上述语法。谢谢,这是一个str。。我如何编辑str类的输出(player_info),然后我可以帮助date=player_info['competition']['startTime']TypeError:字符串索引必须是整数