Задать вопрос
@goober-cripto

Как распарсить json файл?

Задача:
Распарсить данный файл:
https://drive.google.com/file/d/1NWheNTNJrqbOBQbFq...
Выполнить отсортировку нужных координат входящих в пределы условия :
import json

with open('D:/........../notam_v02.geojson','r',encoding ='utf-8') as f:
    data=json.load(f) #открыл файл на чтение r
     del_mass=[]
    for indexx in range(kol_vo):
       try: #если всё верно и ошибок не возникает код выполняется этот
         print(data['features'][indexx]['geometry']['coordinates'])
         
       except KeyError: #появляется ошибка которую я словил KeyError для неё была сделланна обработка
             KOLVO_dva=len(data['features'][indexx]['geometry']['geometries']) #подсчёт в маленьком листе количество итераций
             for vtor_indx in range(KOLVO_dva):
              KOLVO_tri=len(data['features'][indexx]['geometry']['geometries'][vtor_indx]['coordinates'])
              for tret_indx in range(KOLVO_tri):
                  print(data['features'][indexx]['geometry']['geometries'][vtor_indx]['coordinates'][tret_indx])
                  for shetv_indx in data['features'][indexx]['geometry']['geometries'][vtor_indx]['coordinates'][tret_indx]:
                      print(indexx)
                      ret= (data['features'][indexx]['geometry']['geometries'][vtor_indx]['coordinates'][tret_indx][0][1])
    kol_vo=len(data['features'])
                       if ret< 54.532 and ret >56.5343:
                         del_mass.append(indexx)

Используя вышеописанный код у меня получается не полностью распарсить данный файл. Ребята подскажите пожалуйста как можно выполнить сортировку с любой вложенностью в json при работе с большими данными???
  • Вопрос задан
  • 194 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
@deliro
1. 20мб — это вообще не бигдата. Бигдата — это 20тб
2. В JSONе в основном массиве 3к элементов — это копейки. json.load у меня отработал за доли секунды
3. Подозреваю, что основная проблема в том, что условие if ret< 54.532 and ret >56.5343: никогда не выполнится. Потому что не существует числа, которое будет меньше 54 и больше 56 одновременно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ZIK1337
@ZIK1337
Ответ на запрос для удобства можно представить здесь в другой форме https://jsoneditoronline.org/
spoiler
nsKZHz7.jpg

Если фигурные скобки, то индекс не нужен, если квадратные - нужен

Получилось что-то такое:
spoiler
WESx2VP.jpg

т.е. 'geometries' отсутствует
sqFNoQ8.jpg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы