1

RabbitMQを使用して、PythonからJavaアプリケーションにPython辞書を送信しようとしています。Python 側では、いくつかの方法を使用して辞書を文字列に変換します。

  • str(dict)
  • json.dumps(dict)
  • pickle.dumps(dict)

結果は次のようになります。

{"vlan": {"ip": "12.12.12.12", "netmask": "255.255.255.255", "number": 12}}

pika を使用してメッセージを送信すると、Java の「リスナー」に届きます。Java 側では、データを文字列に変換すると、次のようになります。

QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String data =  new String(delivery.getBody())
dp0
S'vlan'
p1
(dp2
S'ip'
p3
S'12.12.12.12'
p4
sS'netmask'
p5
S'255.255.255.255'
p6
sS'number'
p7
I12
ss.

Python側で送信したのと同じ文字列をJava側で取得したいと思います。

何か案は?

4

1 に答える 1

3

言語間で両側で書き込みおよび読み取りが可能なシリアル化形式を使用します。Pythonピクルスは明らかにネイティブのPython形式であり、Javaで逆シリアル化することはできません(Jythonを使用する場合を除く)。代わりに、JSON、XML、またはプロトコルバッファを使用してください。

于 2012-09-13T09:49:10.967 に答える