我提供的输入存储在变量“inp”中。当我在下面显示的if条件下进行比较时,我得不到正确的输出。执行for循环,但不显示输出。当我用字符串“bin_A”替换变量时,我得到正确的输出。
以下是我的代码片段:
def main():
with open("apc.json") as data_file:
data = json.load(data_file)
inp = raw_input("enter name")
print "read the input", str(inp)
for i in range(0,12):
if data["work_order"][i]["bin"] == inp : #have tried repr(inp)
print data["work_order"][i]["bin"]
print "gotcha", i
print data["work_order"][i]["item"]
if __name__ == '__main__':
main()
注意:
print data["work_order"][i]["bin"]
的输出是Bin_A。因此,当我尝试将输入作为Bin_A时,没有任何反应
答案 0 :(得分:2)
考虑data
来自
data = json.load(data_file)
然后您可能需要将变量i
从int
转换为str
if data["work_order"][str(i)]["bin"] == inp
或者,由于您似乎多次使用i
,您可以直接说
for i in map(str, range(0,12)):