2013-05-12 179 views
0

請原諒我的無知,我的第一個幾天與python。Socket.io python客戶端處理json參數

我有以下python客戶端正在偵聽來自nodejs服務器的事件。我使用這個庫: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 }); 

當我打印ARGS它輸出:

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

這顯然是被解讀爲一個元組,而不是字典,我需要它作爲解析json。我讀到'你在說明它正在讀取它作爲unicode,我不知道爲什麼會有一個尾部的斜線。

回答

1

您的函數statusChanged(*args)被定義爲獲取未指定數量的參數。參數args是調用它的所有參數的元組。

所以第一個實際參數(包含數據的字典)可以作爲args[0]

+0

*劉海訪問把頭*該死我什ARGS [0]在一個點上,但絕不能遵循通過和測試轉換到字典()檢查它實際上是閱讀確定。現在很好地工作謝謝你! – Titan 2013-05-12 16:52:42