Получение значений x точек из подсписка в PythonPython

Программы на Python
Гость
Получение значений x точек из подсписка в Python

Сообщение Гость »

У меня есть файл JSON, и этот файл представляет собой вложенный список, такой как A. (Извините, это был словарь)
В координатах, где первый элемент (1.1) содержит x второй элемент (2.2) содержит координаты y, а третий элемент (3.3) содержит координаты z точки. И еще 3 пункта, следующие за первым пунктом, — это точки списка площади здания. Таким образом, точка 4 в списке дает кривую контура здания при создании линий.
Во вторых данных вы можете видеть -между символами ** - , есть 2 подсписка. Это означает, что данные о контурах здания содержат 2 полигона.

Код: Выделить всё

A =

{
"type": "FeatureCollection",
"name": "PROJECT CRS TM 30",
"features": [

{ "type": "Feature", "properties": { "OBJECTID": 0, "ROOF_NUMBER": null, "STOREY": null }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 1.1, 2.2, 3.3 ], [ 4.4, 5.5,6.6 ], [ 7.7, 8.8, 9.9 ], [ 10.10, 11.11, 12.12 ] ] ] ] } },

{ "type": "Feature", "properties": { "OBJECTID": 2215889.0, "ROOF_NUMBER": null, "STOREY": 4 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 13.13, 14.14, 15.15], [ 16.16, 17.17, 18.18 ], [ 19.19, 20.20, 21.21 ], **[ [ [ 22.22, 23.23, 24.24 ], [ 25.25, 26.26, 27.27 ], [ 28.28, 29.29, 30.30 ], [ 31.31, 32.32, 33.33 ] ] ] ] } }**,

]
}

Я хотел бы получить список, содержащий значения x точек, и я хотел бы получить их, не меняя подсписок зданий. Например, Б:

Код: Выделить всё

B = [[[[1.1], [4.4], [7.7], [10.10]]],[[[13.13], [16.16], [19.19]],[[22.22], [25.25], [28.28], [31.31]]]]
где каждый список представляет значение x точек. и каждая функция имеет свои собственные подсписки.
Я получаю список типа C, когда пишу этот код в программном обеспечении визуального программирования BIM.

Код: Выделить всё

get_data_values["features"]["geometry"]["coordinates"][0];
C= [ [ [ [ 13.13, 14.14, 15.15], [ 16.16, 17.17, 18.18 ], [ 19.19, 20.20, 21.21 ], [ [ [ 22.22, 23.23, 24.24 ], [ 25.25, 26.26, 27.27 ], [ 28.28, 29.29, 30.30 ], [ 31.31, 32.32, 33.33 ] ] ] }
После получения C я использовал код ниже, чтобы получить список B.

Код: Выделить всё

def Extract(lst):
second_items = []
for sublst in lst:
for secsublst in sublst:
for thirdsublst in secsublst:
second_item = []
for item in thirdsublst:
second_items.append(second_item)
if item:
second_item.append(item[1])

return second_items
Итак, когда я пробую это, я получаю значения x для каждого объекта, но я понял, что в данных есть 9835 объектов, но в итоге я получаю только 84296 объектов
Файл JSON имеет номер 9835, что означает, что в нем находится информация о 9835 зданиях. А в некоторых объектах есть два разных полигона контура.
[
Изображение
]< /p>
Когда я использую Extract Def, я получаю число 84296. Это означает, что я получаю меньше зданий.
(Изображение)
Изображение

Как мне получить функцию 9835, например B? Я просмотрел форум, но не смог решить свою проблему, так как я новичок.
Спасибо за ваше время и рекомендации.
В целом процесс выглядит следующим образом.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/782 ... -in-python

Вернуться в «Python»