0

我希望我的问题可以通过一些 geojson 专业知识来解决。我遇到的问题与 RhinoPython 有关——McNeel 的 Rhino 5 中的嵌入式 IronPython 引擎(更多信息在这里:http://python.rhino3d.com/)。我认为没有必要成为 RhinoPython 的专家来回答这个问题。

我正在尝试在 RhinoPython 中加载 geojson 文件。因为您不能像在 Python 中那样将 geojson 模块导入 RhinoPython,所以我使用这里提供的这个自定义模块 GeoJson2Rhino:https ://github.com/localcode/rhinopythonscripts/blob/master/GeoJson2Rhino.py

现在我的脚本看起来像这样:

`import rhinoscriptsyntax as rs
 import sys
 rp_scripts = "rhinopythonscripts"
 sys.path.append(rp_scripts)
 import rhinopythonscripts

 import GeoJson2Rhino as geojson

 layer_1 = rs.GetLayer(layer='Layer 01')
 layer_color = rs.LayerColor(layer_1)

 f = open('test_3.geojson')
 gj_data = geojson.load(f,layer_1,layer_color)
 f.close()`

尤其是:

 f = open('test_3.geojson')
 gj_data = geojson.load(f)

当我尝试从常规 python 2.7 中提取 geojson 数据时工作正常。但是在 RhinoPython 中,我收到以下错误消息:消息:参数“文本”的预期字符串,但得到“文件”;参考 gj_data = geojson.load(f)。

我一直在查看上面链接的 GeoJson2Rhino 脚本,我认为我已经正确设置了函数的参数。据我所知,它似乎无法识别我的 geojson 文件,并希望将其作为字符串。是否有替代文件打开功能可用于获取将其识别为 geojson 文件的功能?

4

1 回答 1

1

从错误消息来看,该方法似乎load需要一个字符串作为第一个输入,但在上面的示例中,传递的是一个文件对象。尝试这个...

f = open('test_3.geojson')
g = f.read(); # read contents of 'f' into a string
gj_data = geojson.load(g)

...或者,如果您实际上不需要文件对象...

g = open('test_3.geojson').read() # get the contents of the geojson file directly
gj_data = geojson.load(g)

有关在 python 中读取文件的更多信息,请参见此处。

于 2013-09-11T17:15:35.877 回答