Итак, у меня есть файл yaml. Я пытаюсь извлечь из этого ценности. В настоящее время я не l oop и получаю нужные мне значения, я сделаю это, когда проблема будет решена. Но он не может найти ключ, когда я ввожу переменную, которую хочу использовать. в противном случае он работает.
import yaml
f = open(path)
blueprints = yaml.load(f, Loader=yaml.FullLoader)
id = 682
if (id in blueprints) == True:
act = input("\ncopying\ninvention\nproducts\nskills\nmanufacturing\nActivity: ")
if (act in blueprints[id]["activities"] == True):
print(blueprints[id]["activities"][act])
else:
print("could not find the activity")
else:
print("could not find id")
Таким образом, вывод будет «не удалось найти действие», что означает, что первый оператор in работает, а второй - нет. Я попытался сделать прямо противоположное, введя первую переменную «id» вместо «act», но это тоже не сработало. И да, я превратил переменную id в целое число. Файл yaml слишком велик, но вот его часть:
681:
activities:
copying:
time: 480
manufacturing:
materials:
- quantity: 86
typeID: 38
products:
- quantity: 1
typeID: 165
time: 600
research_material:
time: 210
research_time:
time: 210
blueprintTypeID: 681
maxProductionLimit: 300
682:
activities:
copying:
time: 480
manufacturing:
materials:
- quantity: 133
typeID: 38
products:
- quantity: 1
typeID: 166
time: 600
research_material:
time: 210
research_time:
time: 210
blueprintTypeID: 682
maxProductionLimit: 300
Я все еще новичок в python, и мне не у кого спросить, пока я учусь сам. Прошу прощения, если решение простое.