2016-06-26 16 views
2

Haxeを使用してFlaskサーバーを構築しようとしていますが、JSONを返す方法がわかりません。私は、this gistを使用している例を持っていますMain.index()は、文字列を返しますが、haxe.Json.stringify()から文字列を返そうとすると、出力Pythonを実行しようとするとエラーが発生します。Haxeで構築されたFlaskサーバーでJSONを返す方法

import haxe.Constraints.Function; 

@:pythonImport("flask", "Flask") 
extern class Flask { 
    function new(module:String); 
    function route<T:Function>(path:String):T->T; 
    function run():Void; 
} 

class Main { 
    static function main() { 
     var app = new Flask(untyped __name__); 
     app.route("/")(index); 
     app.run(); 
    } 

    static function index() { 
     return haxe.Json.stringify({msg:"hello"}); 
    } 
} 

Pythonのエラーが:

$ python main.py 
    File "main.py", line 69 
    return haxe_format_JsonPrinter.print(_hx_AnonObject({'msg': "hello"}),None,None) 
            ^
SyntaxError: invalid syntax 
+2

Python 3を使用していますか? HaxeのPythonターゲットは、誤解がなければPython 3しかサポートしていません。 (そして、Python 2で "print"が文/キーワードであり、おそらく関数名として使用できなかったので、上記のエラーがPython 2で発生すると思います) –

+0

Python 3を使用している場合はごめんなさい私はわからない:) –

+0

@ JasonO'Neil働いた!本当にありがとう! – cjohnson318

答えて

2

それは十分に文書化されていないようだが、haXeののPythonのターゲットのみがこの場合https://github.com/HaxeFoundation/haxe/issues/4195

を参照してくださいパイソン3.サポートし、 "プリント" でしたキーワードをPython 2で使用し、Haxe生成コードが "print"という名前の関数を生成しようとしているため、エラーが発生します。

試してみてください。

python3 main.py 

は、それが正しく実行されています。

関連する問題