我有数百台IP摄像机,我已连接到亚马逊ec2实例,它执行NAT,因此摄像机使用实例的公共IP,并可根据指定的端口在摄像机之间切换。我正在尝试编写一个简单的python脚本,它将根据用户输入返回键值。例如,我希望用户能够输入“truck22”并根据该输入提示该车辆的正确端口。然后我希望脚本打开一个webbrowser到正确的主机和端口。我的代码看起来像:
import webbrowser
import os
host = 192.168.1.1
trucks = {'truck22': ':1400', 'truck22 rear': ':1401', 'truck76': ':1412'}
for key in trucks.keys():
value = trucks.get(key)
choice = input("Select your item: ")
if choice in trucks:
webbrowser.open("http://" +host +value)
else:
print("invalid Truck number")
输出:webbrowser打开到192.168.1.1:1400 我唯一的问题是它总是返回卡车22的第一个键值,即端口1400,即使我输入另一个键名。任何想法?
答案 0 :(得分:1)
您需要使用choice
<强>实施例强>
import webbrowser
import os
host = 192.168.1.1
trucks = {'truck22': ':1400', 'truck22 rear': ':1401', 'truck76': ':1412'}
choice = input("Select your item: ")
if choice in trucks:
webbrowser.open("http://" +host + ":" +trucks.get(choice))
else:
print("invalid Truck number")
答案 1 :(得分:0)
在您的代码中,不需要for循环。您只需要检查输入是否在字典中。
choice = input("Select your item: ")
if choice in trucks:
webbrowser.open("http://" +host +trucks[choice])
else:
print("invalid Truck number")