我有一个 JSON 文件只有这个:
{
"jeff": {
}
}
我想检查我是否在我的输入中输入了名字 jeff 它只会打印 123 我在 python 中以这种方式尝试过:
import json
from pprint import pprint
with open('users.json') as f:
data = json.load(f)
print("Hi, would you like to sign up or login?")
print("Type Login for login and Signup to signup")
option= input()
if option == "Login":
unameEntry = input("Please Enter Your Username")
if unameEntry == data[unameEntry] :
print("123")
但它没有找到我在谷歌上四处寻找并努力寻找答案
最佳答案
怎么了
当您访问字典中的值时:
data[unameEntry]
字典返回 data[unameEntry]
的值。假设,正如您在示例中设置的那样,用户键入 "jeff"
:按照您的示例,字典将返回相应的值,在您的示例中是一个空字典。
因此你的 if 实际上在做:
"jeff" == {}
这显然是错误的
。
如何修复
您很可能想检查用户是否是字典中的键。您可以使用 in
运算符来执行此操作:
unameEntry in data
编辑代码
由于我们无法访问您的 users.json
文件,所以让我们在代码中包含字典。此外,为了检测输入处理中是否发现错误,我将通过几个断言并展开条件树:
data = {
"jeff": {}
}
print("Hi, would you like to sign up or login?")
print("Type Login for login and Signup to signup")
option= input()
assert option == "Login"
if option == "Login":
unameEntry = input("Please Enter Your Username")
assert unameEntry == "jeff"
if unameEntry in data:
print("Welcome %s!" % unameEntry)
else:
print("Username %s does not exist" % unameEntry)
关于python - 使用 python 从 JSON 文件中解析数据并检查它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51340977/