0

私の無知を許してください、私の最初の数日はpythonです。

nodejsサーバーからのイベントをリッスンしている次のpythonクライアントがあります。このライブラリを使用しています: https://github.com/invisibleroads/socketIO-client

import RobotArm
import time
from socketIO_client import SocketIO, BaseNamespace    

def statusChanged(*args):
    print(args)

socketIO = SocketIO('192.168.0.3', 3333)
socketIO.on('statusChanged', statusChanged)
socketIO.wait(seconds=1)

input('Press ENTER to exit\n')

Nodejsが送信しています:

socket.emit("statusChanged", { online: botOnline, battery: battery, charging: charging });

引数を出力すると、次のように出力されます。

({u'battery': 50, u'charging': 0, u'online': u'1'},)

これは明らかに、jsonを解析するために必要な辞書ではなく、タプルとして読み取られています。「u」はユニコードとして読み取っていることを示していると読みましたが、末尾にスラッシュがある理由がわかりません。

4

1 に答える 1

1

関数statusChanged(*args)は、指定されていない数の引数を取るように定義されています。パラメータargsは、それを呼び出す際に使用されるすべてのパラメータのタプルです。

したがって、最初の実パラメータ (データを含む辞書) には次のようにアクセスできます。args[0]

于 2013-05-12T16:47:47.427 に答える