树莓派编程入门:从Scryfall API提取JSON数据遇阻求助
树莓派Python API数据提取问题修复
原代码存在的问题
- URL拼接语法错误:Python中字符串与变量不能直接拼接,需使用格式化方式
- 未定义
json_array变量:Scryfall该接口返回单张卡片的JSON对象,而非数组,无需循环遍历 - 冗余的JSON解析:
requests响应对象自带.json()方法,可直接获取解析后的字典,无需手动转文本再json.loads()
修正后的代码
import requests setname = "xln" # 系列ID cardid = "96" # 卡片在系列中的专属ID # 用f-string正确拼接API请求URL response = requests.get(f'https://api.scryfall.com/cards/{setname}/{cardid}.json') # 直接用response.json()获取解析后的字典数据 card_data = response.json() # 提取目标字段,处理字段可能不存在的情况(避免KeyError) card_details = { "color_identity": card_data.get("color_identity", []), "colors": card_data.get("colors", []), "eur": card_data.get("eur", "无欧元定价") } print(card_details)
代码说明
- 使用f-string拼接URL,保证语法正确且可读性高
response.json()自动完成JSON解析,省去手动处理文本的步骤- 使用字典的
.get()方法提取字段,当字段不存在时返回预设默认值,避免程序报错 - 由于接口返回的是单张卡片数据,无需循环,直接提取即可
内容的提问来源于stack exchange,提问作者cooldwd
相关产品推荐
相关产品推荐

