【问题标题】:Osgeo.ogr not getting csv field name correctlyOsgeo.ogr 未正确获取 csv 字段名称
【发布时间】:2016-12-22 10:32:42
【问题描述】:

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 使用单个分隔符?

谢谢!

【问题讨论】:

    标签: python csv postgis ogr


    【解决方案1】:

    我建议不要在字段名称中使用逗号,因为它在尝试解析文件时经常会产生冲突。使用下划线 _ 来命名字段会更好。

    如果您的目标是从此 CSV 文件创建 shapefile,您可以查看此示例,了解如何使用指定的分隔符正确解析文件并将数据转换为 shapefile。

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

    【讨论】:

    • 目标只是将字段名称保存在数据库中。我将尝试使用基本的 python csv 阅读器,它似乎可以将分隔符作为参数。
    猜你喜欢
    • 2013-02-03
    • 2021-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多