QgsVectorLayer 无法打开从 Pandas 数据帧转换的 JSON 字符串

问题描述 投票:0回答:1

我是 PyQGIS 的新手,我有一个 QgsVectorLayer 似乎不理解的问题

我正在处理脚本以在 QGIS 中构建模型。我正在运行方法结果无法打开的问题。最后一部分的结果是一个没有几何值的 pandas 数据框。我正在尝试将其转换回没有几何形状的矢量图层作为该模型的输出

这是代码片段

    # in processAlgorithm

         ....

        #type: pandas dataframe with no geometry
        parsed_data_df = self.parse_response_data(response_data) 
        
        if parsed_data_df is not None:
            results['Matrix'] = QgsVectorLayer(parsed_data_df.to_json(),"matrix","ogr")
        return results

这是运行模型后的警告

WARNING    Cannot open {"originIndex":{"0":0,"1":1},"destinationIndex":{"0":0,"1":0},"lengthInMeters":{"0":1008,"1":1198},"travelTimeInSeconds":{"0":174,"1":192}} ().()

我尝试了各种转换(to_json、to_csv、to_list),但似乎都不起作用。我希望有人有办法解决这个问题。

python geometry qgis ogr pyqgis
1个回答
0
投票

如果您为 QgsVectorLayer 的第一个参数提供 JSON 字符串,则它必须是 GeoJSON 字符串

您正在使用 Pandas 数据框。您需要使用 GeoPandas 并且您的数据需要是带有几何列的空间数据。

然后您可以使用

geopandas.GeoDataFrame.to_json
来获取 GeoJSON 字符串。

© www.soinside.com 2019 - 2024. All rights reserved.