在RhinoPython中打开geojson文件

时间:2013-03-19 06:19:32

标签: python geojson rhino3d

我希望我的问题可以通过一些geojson专业知识来解决。我遇到的问题与RhinoPython有关--MinNeel的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中我收到以下错误消息:消息:参数'text'的预期字符串但得到'file';参考gj_data = geojson.load(f)。

我一直在查看上面链接的GeoJson2Rhino脚本,我想我已正确设置了该函数的参数。据我所知,它似乎没有识别我的geojson文件,并希望它作为一个字符串。是否有一个替代文件打开函数,我可以使用它来将函数识别为geojson文件?

1 个答案:

答案 0 :(得分:1)

根据错误消息判断,load方法看起来需要字符串作为第一个输入,但在上面的示例中, file 对象正在相反。试试这个......

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中读取文件的更多信息,请参阅here