使用python检查json文件中是否存在值

使用python检查json文件中是否存在值,json,python-3.x,Json,Python 3.x,我有以下json文件(banneds.json): 我总是收到“错误”的结果,但价值是存在的,有人能告诉我我做错了什么吗?我整晚都在努力寻找解决方案,但没有人能奏效:( 感谢您的帮助!您正在将数据作为字典对象进行检查。使用if check in data进行检查时,它会检查数据对象是否具有与check变量值匹配的键(data.keys()列出所有键) 一个简单的方法是使用如果签入数据[“players”]。\uu str\uu(),它将值转换为字符串并搜索匹配项 如果您想确保checkvalue

我有以下json文件(banneds.json):

我总是收到“错误”的结果,但价值是存在的,有人能告诉我我做错了什么吗?我整晚都在努力寻找解决方案,但没有人能奏效:(


感谢您的帮助!

您正在将数据作为字典对象进行检查。使用
if check in data
进行检查时,它会检查数据对象是否具有与
check
变量值匹配的键(
data.keys()
列出所有键)

一个简单的方法是使用
如果签入数据[“players”]。\uu str\uu()
,它将值转换为字符串并搜索匹配项


如果您想确保
check
value只检查
stream64
值,您可以编写一个简单的函数来迭代所有“玩家”并检查他们的“stream64”值。另一个解决方案是列出“stream64”值,以便更快更容易地检查。

您正在将数据作为字典对象进行检查。使用
if check in data
进行检查时,它会检查数据对象是否具有与
check
变量的值相匹配的键(
data.keys()
列出所有键)

一个简单的方法是使用
如果签入数据[“players”]。\uu str\uu()
,它将值转换为字符串并搜索匹配项

如果您想确保
check
value只检查
stream64
值,您可以编写一个简单的函数,该函数将迭代所有“玩家”并检查他们的“stream64”值。另一个解决方案是列出“stream64”值,以便更快、更容易地检查。

您可以使用
any()
检查
steam64
键的值是否存在

例如:

import json


def check_value(data, val):
    return any(player['steam64']==val for player in data['players'])

with open('banneds.json', 'r') as f_in:
    data = json.load(f_in)

print(check_value(data, 76561198046619692))
印刷品:

True
您可以使用
any()
检查
stream64
键的值是否存在

例如:

import json


def check_value(data, val):
    return any(player['steam64']==val for player in data['players'])

with open('banneds.json', 'r') as f_in:
    data = json.load(f_in)

print(check_value(data, 76561198046619692))
印刷品:

True

感谢您的帮助,我按照您的想法创建了一个列表,并将所有steam64值附加到此列表中,之后我使用“in”进行验证。现在一切正常。感谢您的帮助,我按照您的想法创建了一个列表,并将所有steam64值附加到此列表中,之后我使用“in”进行验证。现在一切正常。