我希望我的问题可以通过一些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文件?
答案 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。