Python提取JSON中指定Clan的name和fame字段问题求助
搞定你的clan数据提取问题
嘿,我来帮你看看这个代码问题~你当前的if判断出错,是因为犯了一个小错误:你把整个clan字典和标签字符串直接对比了。p["clan"]是一个包含标签、participants等信息的字典,不是单纯的标签文本,直接和'#9VL9L9YQ'比较肯定不会匹配成功。
修正后的代码
首先,你需要找到clan字典里存储标签的具体键(这类数据里标签的键名通常是tag,如果不是的话,你可以先打印p["clan"]看看里面的结构确认),然后用这个键来做判断。修正后的代码如下:
import json data = json.loads(response) for item in data["items"]: for p in item["standings"]: # 先判断当前clan的标签是否是目标标签 if p["clan"]["tag"] == '#9VL9L9YQ': # 匹配成功后,遍历该clan的所有participants for q in p["clan"]["participants"]: print(f"{q['name']} {q['fame']}")
小优化提示
- 我把字符串格式化换成了更简洁的f-string,如果你习惯原来的
%s写法也可以保留; - 提前判断clan标签,不用先遍历所有participants,能稍微提升一点效率;
- 如果不确定标签对应的键名,可以先加一行
print(p["clan"].keys()),打印出clan字典的所有键,就能找到对应标签的那个键了。
内容的提问来源于stack exchange,提问作者Merluchon
相关产品推荐
相关产品推荐

