У меня есть kml-файл с ячейкой с более чем 1 миллионом символов. Я хочу уменьшить число десятичных чисел с 12 до 3. Я импортировал lxml и pykml.Как уменьшить координаты в десятичном формате в локальном файле kml с помощью pykml?
import pykml
from pykml.helpers import set_max_decimal_places
file1=open('\United States divisions. Level 2.kml')
from os import path
#set_max_decimal_places(file1, max_decimals={'longitude':3,'latitude':3,})
и я получил эту ошибку:
39 index_no = 0 # longitude is in the first position
40 # modify <longitude>
---> 41 for el in doc.findall(".//{http://www.opengis.net/kml/2.2}longitude"):
42 new_val = round(float(el.text), max_decimals[data_type])
43 el.getparent().longitude = K.longitude(new_val)
AttributeError: «Файл» объект не имеет атрибута «FindAll»
Итак - В первой ситуации я ожидаю вам просто нужно записать файл на диск? Во втором я ожидаю, что у вас есть набор атрибутов, который недействителен KML - попробуйте подтвердить свой документ. Если это так, просто используйте первый метод, так как вам не нужно * иметь * иметь действительный KML, чтобы делать эти обновления или использовать его. – Matthew
Мой комментарий перед тем, как вы последний раз обращался к этому комментарию перед удалением/повторным добавлением. – Matthew
Я предлагаю вам начать с примера в связанной документации, просто используя строку, установленную в скрипте. После этого попытайтесь загрузить выдержку из вашего файла (несколько записей в новом тестовом файле из вашего огромного документа) и убедитесь, что он работает должным образом. Затем переходите к обработке всего. – Matthew