哪些数据交换格式可用于 python 和 java 应用程序相互通信?

Posted

技术标签:

【中文标题】哪些数据交换格式可用于 python 和 java 应用程序相互通信?【英文标题】:What data interchange formats can be used for a python and a java application to talk to each other? 【发布时间】:2015-12-21 22:10:22 【问题描述】:

我有一个将与 Java 服务器通信的 python 应用程序。 python 应用程序将持续向 java 服务器发送简单的消息,其中包含一些值 [例如:姓名、学生卷号、标记]

我考虑让这种通信以 json 格式进行,因为我不想进入可能存在错误的纯文本处理。但是,如果我使用 json,我将多次传输字段名称 [例如“name”、“studentRollNumber”] 等。有没有更好的方法来做到这一点?

TL;DR 将对象序列化/反序列化为可在 Java 和 Python 中使用而又不会过于冗长的文本的好方法是什么?

【问题讨论】:

看看 google protobuf ,flat buffers 我以前听说过 protobuf,但由于某种原因(不记得是什么)放弃了它。但是平面缓冲区看起来真的,现在正在研究它。谢谢! 【参考方案1】:

我不这么认为。

你说的似乎是在朝着正确的方向前进。

我不想进入可能潜在的纯文本处理 是越野车。

这是绝对正确的,为什么您应该考虑像 JSON 这样的格式化文本。 不幸的是,任何格式化都意味着开销:增加您发送的数据的大小。

因此,您要么需要即兴创作自己的格式,其中包含最少的“额外内容”。或者使用可用的 Json , XML ...

【讨论】:

谢谢! Pradheep 建议的平面缓冲区看起来非常适合。仍然不确定它是否对我来说足够“轻”。

以上是关于哪些数据交换格式可用于 python 和 java 应用程序相互通信?的主要内容,如果未能解决你的问题,请参考以下文章

Google Protocol Buffers 入门

Google Protocol Buffer 的使用和原理

用python可视化protobuf内容

PHP-Protobuf的编译

什么是jms?jms定定义了哪些不同的消息正文格式

Python 转化成 PB 格式数据