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 に答える