【问题标题】:Getting Key Values from user input within python dict从python dict中的用户输入获取键值
【发布时间】:2018-05-08 16:50:24
【问题描述】:

我有数百个 IP 摄像头已连接到亚马逊 ec2 实例,该实例执行 NAT,因此摄像头使用实例的公共 IP,并且可以根据指定的端口在摄像头之间切换。我正在尝试编写一个简单的 python 脚本,它将根据用户输入返回键值。例如,我希望用户能够输入“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 唯一的问题是它总是返回卡车 22 的第一个键值,即端口 1400,即使我输入另一个键名。有什么想法吗?

【问题讨论】:

  • 您好,在 Python 中,缩进非常重要。您能否更新您的问题以使代码正确?

标签: python dictionary keyvaluepair


【解决方案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")

【讨论】:

  • 如果它解决了您的问题,请通过单击 ans 旁边的勾选按钮接受。谢谢
【解决方案2】:

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

【讨论】:

  • 这两个答案正是我想要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多