Python如何校验JSON文件中多个值是否匹配搜索条件并提取对应数据
解决方案
逻辑说明
不要将整个player列表转为字符串做匹配,这种方式容错性低容易出现误判。正确逻辑是遍历player数组的每一条数据,同时校验name和rating两个字段是否和目标变量一致,匹配成功后直接提取对应的prices值即可。
完整可运行代码
import urllib, json url = "https://exec85.pythonanywhere.com/static/data_xbox.JSON" response = urllib.request.urlopen(url) json_data_xbox = json.loads(response.read()) name_var = "Salah" rating_var = "96" target_price = None # 遍历校验匹配 for player_item in json_data_xbox["player"]: if player_item["name"] == name_var and player_item["rating"] == rating_var: target_price = player_item["prices"] break if target_price: print(f"匹配成功,对应价格为:{target_price}") else: print("not matching")
注:你原代码中导入的
requests和BeautifulSoup没有被使用,后续如果没有相关需求可以直接删除这两行导入语句。
扩展说明
如果业务场景中可能存在多条name+rating都相同的条目,只需要去掉上面代码里的break,用一个列表存储所有匹配到的prices值即可。
内容的提问来源于stack exchange,提问作者exec85
相关产品推荐
相关产品推荐

