Osgeo.ogr неправильно получает имя поля csv

Osgeo.ogr, похоже, не может правильно получить имя поля файла CSV. Возьмите этот пример:

Identifian,C,254;CodeVoieRi,C,254;CodeInseeI,N,10,0
1;;13021
2;;13021
3;;13021

Проблема в том, что ogr принимает "," и ";" в качестве разделителей, в то время как "," являются лишь частью имени столбца.

Вот код Python, который я использую:

dataSource = ogr.Open(file)
daLayer = dataSource.GetLayer(0)
layerDefinition = daLayer.GetLayerDefn()
for i in range(layerDefinition.GetFieldCount()):
     name = layerDefinition.GetFieldDefn(i).GetName()

Можно ли указать в ogr использование одного разделителя?

Спасибо!

1 ответ

Я бы предложил никогда не использовать запятые в именах полей, так как это часто создает конфликты при попытке анализа файла. Использование подчеркивания _ Вместо этого будет лучше назвать имена полей.

Если ваша цель - создать шейп-файл из этого CSV-файла, вы можете посмотреть на этот пример, чтобы увидеть, как правильно проанализировать ваш файл с помощью специального разделителя и преобразовать данные в шейп-файл.

https://pcjericks.github.io/py-gdalogr-cookbook/vector_layers.html

Другие вопросы по тегам