尝试解析 fortnite-api 响应时出现类型错误

我正在尝试获取 fortnite-api 网站数据,并且只获取“emote”下列出的内容


r = requests.get('https://fortnite-api.com/v2/cosmetics/br', headers=headers)


rr = r.json()

for sub_dict in rr['data']:

    for image_sub_dict in sub_dict['type']:

      for j in image_sub_dict['value']:

          print(j)

这导致TypeError: string indices must be integers | Json data


沧海一幻觉
浏览 168回答 2
2回答

幕布斯6054654

您没有正确解析数据。该行将for image_sub_dict in sub_dict['type']:返回字典的键'type',而不是值。相反,您可能只想查询'type'dict 的值"emote"。以下是获取所有表情的图标 URL 的示例:import requestsresponse = requests.get(    'https://fortnite-api.com/v2/cosmetics/br',     headers={'Accept': 'application/json'},).json()for entry in response['data']:    kind = entry['type']['value']    if kind  == 'emote':        name = entry['name']        icon = entry['images']['icon']        print(f"{name}: {icon}")输出:...Scorecard: https://fortnite-api.com/images/cosmetics/br/eid_scorecard/icon.pngTeam Burger: https://fortnite-api.com/images/cosmetics/br/eid_scorecardburger/icon.pngTeam Tomato: https://fortnite-api.com/images/cosmetics/br/eid_scorecardtomato/icon.pngMembers Only: https://fortnite-api.com/images/cosmetics/br/eid_secrethandshake/icon.png...

慕仙森

您需要添加一些日志记录来查看哪个键是错误的。尝试:rr = r.json()print(rr, type(rr))for sub_dict in rr['data']:    print(sub_dict, type(sub_dict))    for image_sub_dict in sub_dict['type']:      print(image_sub_dict, type(image_sub_dict))      for j in image_sub_dict['value']:          print(j)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python