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