Rupesh Kumar Pradhan Ответов: 1

Я не получаю правильный вывод с базой данных JSON при изменении индекса элемента


from kivy.storage.jsonstore import JsonStore

store = JsonStore('student.json')

# put some values

store.put('20150053', classname = '1A', roll = '1', name = 'AARON LIN RAI', dob = '29.10.2010')
store.put('20140030', classname = '1A', roll = '2', name = 'ABHIRAL RAI', dob = '12.05.2011')
store.put('20170068', classname = '1A', roll = '3', name = 'ABIGAIL RAI', dob = '')

# or guess the key/entry for a part of the key
for item in store.find(classname='1A'):
    print('StudentID :', item[0])



учитывая правильный вывод

StudentID : 20140030
StudentID : 20150053
StudentID : 20170068

Однако когда я изменяю индекс элемента на 1, я получаю неожиданный результат

StudentID : {'classname': '1A', 'roll': '1', 'dob': '29.10.2010', 'name': 'AARON LIN RAI'}
StudentID : {'classname': '1A', 'roll': '2', 'dob': '12.05.2011', 'name': 'ABHIRAL RAI'}
StudentID : {'classname': '1A', 'roll': '3', 'dob': ", 'name': 'ABIGAIL RAI'}

Я жду тебя.

StudentID : 1A
StudentID : 1A
StudentID : 1A

Когда я изменяю индекс на 2, я получаю ошибку

Обратная трассировка (самый недавний призыв последнего):
Файл "C:/Users/RUPESH/PycharmProjects/TestScripts/JsonDatabaseTest.py", строка 13, in <module>
print('StudentID :', item[2])
IndexError: индекс кортежа выходит за пределы диапазона

Что я уже пробовал:

Я очень тщательно проверил данные в команде store.put и сравнил их с образцом скрипта. Я не могу найти никакой ошибки.

1 Ответов

Рейтинг:
10

Rupesh Kumar Pradhan

Я основал свой сценарий на примере документации. Я скопировал вставленный сценарий и изменил его. Я сравнил сценарий на предмет ошибок, но так и не смог его найти. А ты можешь?

Richard MacCutchan

Совершенно очевидно, что содержимое хранится во вложенном кортеже. На верхнем уровне у вас есть первое поле-это ключ записи, а второе поле-все остальное. Таким образом, чтобы получить элемент из второго поля, он будет индексироваться по ключу записи или номеру поля и ключевому слову. Что-то вроде: item[1]["classname"] Это похоже на то, что я вижу в документации.

Rupesh Kumar Pradhan

О! Я здесь новичок. Понял. Спасибо