【问题标题】:Python check if multiple values match search criteria in JSON filePython检查多个值是否与JSON文件中的搜索条件匹配
【发布时间】:2021-09-01 20:43:30
【问题描述】:

我有以下代码:

import requests
from bs4 import BeautifulSoup
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"


if name in json_data_xbox["player"].__str__(): # here I don't know what to write to check if name + rating are matching
    print("matching")

else:
    print("not matching")

这是对应的 JSON 文件:

{"player": [{"name": "Salah", "rating": "96", "rarity": "TOTS", "prices": 5380000}, {"name": "Salah", "rating": "93", "rarity": "FOF PTG", "prices": 956000}] 

如您所见,我有两个名称相同但评级和价格不同的条目。 我想检查是否可以在我的 json 字典中的一个对象中找到两个变量以匹配正确的一个。 所以在这个例子中,我想检查name_varrating_var是否匹配,然后得到正确的"prices"值。

我需要写什么来完成检查?

【问题讨论】:

    标签: python json dictionary


    【解决方案1】:

    您可能希望遍历响应中的每个字典并检查键值是否等于您的变量。可以这样做:

        json_data_xbox = json.loads(
        '{"player": [{"name": "Salah", "rating": "96", "rarity": "TOTS", "prices": 5380000}, {"name": "Salah", "rating": "93", "rarity": "FOF PTG", "prices": 956000}]}')
    
    
    name = "Salah"
    rating_var = "96"
    
    price = ""
    
    for i in json_data_xbox["player"]:
        if i["name"] == name and i["rating"] == rating_var:
            price = i["prices"]
    
    print(price)
    

    【讨论】:

    • 非常感谢!正是我想要的!
    猜你喜欢
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-12
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    相关资源
    最近更新 更多