更新39协议
更新webserivce功能
完善nettrans
diff --git a/supwisdom/protocol/nettrans.py b/supwisdom/protocol/nettrans.py
index 0d1df81..4973c8c 100644
--- a/supwisdom/protocol/nettrans.py
+++ b/supwisdom/protocol/nettrans.py
@@ -5,14 +5,10 @@
import traceback
import simplejson as json
-
-def _unicode_str(value):
- if isinstance(value, str):
- return value.decode('utf-8')
- elif isinstance(value, unicode):
- return value
- else:
- return unicode(value)
+"""
+后台服务的字符编码
+"""
+SERVICE_ENCODING = 'utf-8'
class message_writer:
@@ -21,6 +17,14 @@
def __init__(self):
self.clear()
+ def _unicode_str(value):
+ if isinstance(value, str):
+ return value.decode('utf-8')
+ elif isinstance(value, unicode):
+ return value
+ else:
+ return unicode(value)
+
def clear(self):
self._attr = {}
self._row_data = []
@@ -31,13 +35,13 @@
def attr(self, name, value):
if name in self._attr:
raise ValueError('Attribute [%s] already exists' % name)
- self._attr[name] = _unicode_str(value)
+ self._attr[name] = self._unicode_str(value)
return self
def row(self, name, value):
if not (name in self._col_names):
self._col_names.append(name)
- self._row[name] = _unicode_str(value)
+ self._row[name] = self._unicode_str(value)
def add_row(self):
if not self._row:
@@ -77,7 +81,7 @@
"""
if not self._frozen:
self._normalize()
- seri = json.dumps(self._attr, ensure_ascii=False, encoding='utf-8')
+ seri = json.dumps(self._attr, ensure_ascii=False, encoding=SERVICE_ENCODING)
return seri
def root(self):
@@ -92,6 +96,14 @@
def __init__(self):
self.clear()
+ def _unicode_str(value):
+ if isinstance(value, str):
+ return value.decode(SERVICE_ENCODING)
+ elif isinstance(value, unicode):
+ return value
+ else:
+ return unicode(value)
+
def clear(self):
""" 清空数据
"""
@@ -107,7 +119,7 @@
"""
self.clear()
try:
- message = _unicode_str(message)
+ message = self._unicode_str(message)
obj = json.loads(message)
#obj = json.loads(msg.replace('\\',"\\\\"))
except Exception, ex: