为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

沧海一幻觉 2023-07-18 17:56:09
我正在尝试获取 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
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您没有正确解析数据。


该行将for image_sub_dict in sub_dict['type']:返回字典的键'type',而不是值。相反,您可能只想查询'type'dict 的值"emote"。以下是获取所有表情的图标 URL 的示例:


import requests


response = 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.png

Team Burger: https://fortnite-api.com/images/cosmetics/br/eid_scorecardburger/icon.png

Team Tomato: https://fortnite-api.com/images/cosmetics/br/eid_scorecardtomato/icon.png

Members Only: https://fortnite-api.com/images/cosmetics/br/eid_secrethandshake/icon.png

...


查看完整回答
反对 回复 2023-07-18
?
慕仙森

TA贡献1827条经验 获得超8个赞

您需要添加一些日志记录来查看哪个键是错误的。尝试:


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)


查看完整回答
反对 回复 2023-07-18
  • 2 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信