从 python 字典中的用户输入获取键值

Getting Key Values from user input within python dict

我有数百个 IP 摄像头连接到 amazon ec2 实例,它执行 NAT,因此摄像头使用实例的 Public IP,并且可以根据指定的端口在摄像头之间切换。我正在尝试编写一个简单的 python 脚本,它将根据用户输入 return 键值。例如,我希望用户能够输入 "truck22" 并根据该输入提示为该车辆输入正确的端口。然后我希望脚本打开一个网络浏览器到正确的主机和端口。我的代码看起来像:

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")

输出:浏览器打开 192.168.1.1:1400 唯一的问题是它总是 return 卡车 22 的第一个键值,即端口 1400,即使我输入另一个键名也是如此。有什么想法吗?

您需要使用 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")

在您的代码中,for 循环不是必需的。您只需要检查您的输入是否在字典中。 choice = input("Select your item: ") if choice in trucks: webbrowser.open("http://" +host +trucks[choice]) else: print("invalid Truck number")