2016-12-22 7 views
0

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 использовать один разделитель?

Спасибо!

ответ

0

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

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

https://pcjericks.github.io/py-gdalogr-cookbook/vector_layers.html#create-a-new-shapefile-and-add-data

+0

Цель состояла в том, чтобы сэкономить имя поля в БД. Я попробую с основным читателем csv python, кажется, что он может использовать разделитель в качестве параметров. – Jbertrand

 Смежные вопросы

  • Нет связанных вопросов^_^