пытаюсь сравнить файл со словарем python 2.7 - PullRequest
0 голосов
/ 02 мая 2018

В основном я пытаюсь прочитать файл ниже и сравниваю фрукты, которые человек хочет, с фруктами в словаре, и если запас превышает 0, напечатайте сообщение о том, что ему дали фрукты, и если запас равен 0 затем было дано сообщение о том, что не было плодов и т. д.

ошибка, которую я получаю: «IndexError: список индексов выходит за пределы диапазона» в первой строке моего оператора if

[
["James Bruce", "Bananas"],
["Katherine Newton", "Bananas"],
["Deborah Garcia", "Pears"],
["Marguerite Kozlowski", "Pineapples"],
["Kenneth Fitzgerald", "Pineapples"],
["Ronald Crawford", "Bananas"],
["Donald Haar", "Apples"],
["Al Whittenberg", "Bananas"],
["Max Bergevin", "Bananas"],
["Carlos Doby", "Pears"],
["Barry Hayes", "Pineapples"],
["Donald Haar", "Bananas"]
]

в словаре: {"Яблоки": 14, "Бананы": 14, "Ананасы": 0, "Груши": 8}

from ast import literal_eval
with open("C:\Users\dylan gornall\Desktop\Dylan's Uni Work\stock.json") as f:
a = f.read()
dic = literal_eval(a)
print(dic["Apples"])

s = open ("C:\Users\dylan gornall\Desktop\Dylan's Uni Work\queue.json", 'r')
for line in s:
parts = line.split(',')

if parts[1] == ("pears") + dic["Pears"] > 1 :
    print( parts[0] + ' has been given ' + parts[1] )

elif parts[1] == ("Apples") + dic["Apples"] > 1 :
    print( parts[0] + ' has been given ' + parts[1] )

elif parts[1] == ("Bananas") + dic["Bananas"] > 1 :
    print( parts[0] + ' has been given ' + parts[1] )

elif parts[1] == ("Pineapples") + dic["Pineapples"] > 1 :
    print( parts[0] + ' has been given ' + parts[1] )

1 Ответ

0 голосов
/ 02 мая 2018

Первая строка во входном файле JSON - это открытая скобка. Когда вы split() сделаете это, вы получите только один элемент в списке, но вы пытаетесь получить доступ ко второму элементу.

Рекомендуется использовать модуль Python json для ввода JSON: https://docs.python.org/2/library/json.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...