2015-12-01 3 views
-2

Когда я Выполнение выражений этого кода для JSon файлаIndexError: список индексы вне диапазона питона JSON

 
data = [] 

with open('subscriberaa') as f: 
    for line in f: 
     data = json.loads(line) 

print str(data["services_key"][0]["code_key"]) 

Я эта ошибка:

 
IndexError: list index out of range 

Это для пустого списка в синтаксический анализ строки ([])

"services_key": []

Как я могу попытаться поймать эту ошибку?

+1

из вашей терминологии, кажется, вы знаете, какие блоки 'try-except' есть, просто поместите свой' print' внутри него и поймайте 'except IndexError' –

+0

Я бы пошел с обработкой исключений, но вы также можете проверить до продолжения 'if data [" services_key "]:' – tdelaney

+0

Вы * do * понимаете, что вы полностью переписываете 'данные' после каждой строки, не так ли? После вашей 'с открытой (...' строкой просто сделайте 'data = json.loads (f.read())', и все содержимое файла будет загружено в 'data'. – MattDMo

ответ

0

в питона термин попытаться кроме, но я знаю, что вы имеете в виду

вот что вы можете сделать

data = [] 

with open('subscriberaa') as f: 
    for line in f: 
     data = json.loads(line) 
try: 
    print str(data["services_key"][0]["code_key"]) 
except: 
    //code that runs when error happens 

надеюсь, что это помогает!

+0

Очень спасибо !!!! я использую это решение –

Смежные вопросы