系统如何识别设备并专门为设备加载文件,其中包含合适的问题和响应,例如屏幕有多少英寸。 我能够在python上执行此操作但是我不知道如何在csv文件上执行相同操作。 我有3个设备,系统应该识别,但因为代码很长,我只会显示一个设备。
用户必须能够通过输入与程序进行交互。
答案 0 :(得分:0)
我建议使用JSON格式存储数据,这样可以更灵活地存储数据。如果您的JSON文件如下所示:
{
"phone": {
"iphone": {
"iphone6": {
"8GB": [
[
[
"keyword1",
"keyword2"
],
"solution1"
],
[
[
"keyword3",
"keyword4"
],
"solution2"
]
],
"16GB": [
...
]
},
"iphone7": {
"8GB": ...,
"16GB": ...
},
}
"samsung": ...
},
"tablet": ...
}
(...
表示您放置的数据)然后您可以直接使用用户输入数据作为数据的键:
import json
# read your data from a file
with open("data.json") as f:
data = json.load(f)
# ask for device
while True:
device = input("Enter your device: ")
try:
device_data = data[device.strip().lower()]
except KeyError:
print("Please enter a valid device.")
else:
break
# ask for manufacturer
while True:
manufacturer = input("Enter the manifacturer of your device: ")
try:
manufacturer_data = device_data[manufacturer.strip().lower()]
except KeyError:
print("Please enter a valid manufacturer.")
else:
break
# ask for model
while True:
model = input("Enter your model: ")
try:
model_data = manufacturer_data[model.strip().lower()]
except KeyError:
print("Please enter a valid model.")
else:
break
# ask for memory
while True:
memory = input("Enter the amount of internal memory you have: ")
try:
memory_data = model_data[memory.strip().lower()]
except KeyError:
print("Please enter a valid amount.")
else:
break
# ask for problem
while True:
problem = input("Enter your problem: ")
words = problem.strip().lower().split(" ")
for keywords, solution in memory_data:
if set(words) & set(keywords):
print(solution)
break
else:
print("A solution could not be found, please describe your problem more clearly.")
我包含.strip().lower()
以使更多可能的输入有效。这会接受"iphone"
,"IPhone"
,"IPHONE"
和" Iphone"
作为有效输入。为了让您的用户了解可能的选项,您还可以输出问题中的选项。这是制造商的一个例子:
options = list(device_data.values())
output = "Enter the manifacturer of your device ["+"/".join(options)+"]: "
manufacturer = input(output)
此解决方案仅在您想为每个设备提出相同问题时才有效。如果不是这种情况(例如,您不想询问用户在谈论相机时有多少内部存储器),那么您可以将问题包含在JSON文件中并递归地提出问题。