JSON 似乎是数据序列化的一个足够公平的选择——它擅长处理字符串,并且在 python 和 C++ 中都有用于编码/解码 JSON 的现有库。
但是,我认为您更大的问题可能是您用于在客户端和服务器之间传输 JSON 的传输协议。这里有一些选项:
您可以在您的 C++ 应用程序中构建一个 HTTP 服务器(我认为这可能是您在问题中所说的“JSON 服务器”的意思),它可以正常工作,但实现起来可能有点痛苦,除非您掌握为您处理繁重工作的图书馆。
另一种选择可能是使用0MQ库在客户端和服务器之间发送 JSON(或其他)消息。我认为这可能比实现一个完整的 HTTP 服务器要容易得多,而且 0MQ 有一些进程间通信代码,可能比通过网络发送信息要快得多。
第三种选择只是将 C++ 作为独立应用程序运行,并通过标准输入或命令行参数将数据传递给它。这可能是最简单的做事方式,虽然可能不是最灵活的。如果你要这样做,你最好按照 ablm 的建议构建一个 Python/C++ 绑定。
或者,您可以尝试基于redis或其他数据库系统构建某种作业队列。这个想法是您的 django 应用程序将一些描述作业的 JSON 放入作业队列中,然后 C++ 应用程序可以定期轮询队列,并使用单独的 redis 条目将结果传递回客户端。这样做的好处是,您可以轻松地让几个“工作人员”从作业队列中读取,而无需付出任何努力。
几乎肯定还有其他一些方法可以解决它,但那些是立即浮现在脑海中的那些。