我正在尝试使用 Haxe 构建 Flask 服务器,但我对如何返回 JSON 感到困惑。我使用 this gist 启动并运行了一个示例,其中 Main.index() 返回一个字符串,但是当我尝试从 haxe.Json.stringify() 返回一个字符串时,当我尝试运行输出 Python 时出现错误。

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

最佳答案

它似乎没有很好的文档记录,但 Haxe 的 python 目标只支持 Python 3。见 https://github.com/HaxeFoundation/haxe/issues/4195

在这种情况下,“print”是 Python 2 中的关键字,Haxe 生成的代码试图生成一个名为“print”的函数,因此出现错误。

尝试:

python3 main.py

让它正确运行。

关于python - 如何在使用 Haxe 构建的 Flask 服务器中返回 JSON,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38041638/

10-13 05:41