本文整理汇总了Python中zmq.utils.jsonapi.loads函数的典型用法代码示例。如果您正苦于以下问题:Python loads函数的具体用法?Python loads怎么用?Python loads使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了loads函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _on_actuator_result
def _on_actuator_result(self, topic, headers, message, match):
"""lock result"""
msg = jsonapi.loads(message[0])
print 'Actuator Results:', match, msg
if headers['requesterID'] == agent_id:
if self.actuator_handler is not None:
self.actuator_handler(match, jsonapi.loads(message[0]))
示例2: iter_messages
def iter_messages(self):
""" Yields tuples of (watcher, subtopic, stat)"""
recv = self.pubsub_socket.recv_multipart
with self:
while True:
try:
events = dict(self.poller.poll(self.timeout * 1000))
except zmq.ZMQError as e:
if e.errno == errno.EINTR:
continue
raise
if len(events) == 0:
continue
try:
topic, stat = recv()
except zmq.core.error.ZMQError as e:
if e.errno != errno.EINTR:
raise
else:
try:
sys.exc_clear()
except Exception:
pass
continue
topic = s(topic).split('.')
if len(topic) == 3:
__, watcher, subtopic = topic
yield watcher, subtopic, json.loads(stat)
elif len(topic) == 2:
__, watcher = topic
yield watcher, None, json.loads(stat)
示例3: on_message
def on_message(self, message):
prefix, message = message.split(",", 1)
kernel, channel = prefix.split("/", 1)
if channel=="stdin":
# TODO: Support the stdin channel
# See http://ipython.org/ipython-doc/dev/development/messaging.html
return
try:
if kernel == "complete":
application = self.session.handler.application
message = jsonapi.loads(message)
if message["header"]["msg_type"] in ("complete_request", "object_info_request"):
application.completer.registerRequest(self, message)
elif kernel not in self.channels:
# handler may be None in certain circumstances (it seems to only be set
# in GET requests, not POST requests, so even using it here may
# only work with JSONP because of a race condition)
application = self.session.handler.application
kernel_info = application.km.kernel_info(kernel)
self.kernel_info = {'remote_ip': kernel_info['remote_ip'],
'referer': kernel_info['referer'],
'timeout': kernel_info['timeout']}
self.channels[kernel] = \
{"shell": ShellSockJSHandler(kernel, self.send, application),
"iopub": IOPubSockJSHandler(kernel, self.send, application)}
self.channels[kernel]["shell"].open(kernel)
self.channels[kernel]["iopub"].open(kernel)
if kernel != "complete":
self._log_stats(kernel, message)
self.channels[kernel][channel].on_message(message)
except KeyError:
jsonmessage=jsonapi.loads(message)
logger.info("%s message sent to deleted kernel: %s"%(jsonmessage["header"]["msg_type"], kernel))
pass # Ignore messages to nonexistant or killed kernels
示例4: load_config_from_json
def load_config_from_json(self):
"""load config from existing json connector files."""
c = self.config
# load from engine config
with open(os.path.join(self.profile_dir.security_dir, 'ipcontroller-engine.json')) as f:
cfg = json.loads(f.read())
key = c.Session.key = asbytes(cfg['exec_key'])
xport,addr = cfg['url'].split('://')
c.HubFactory.engine_transport = xport
ip,ports = addr.split(':')
c.HubFactory.engine_ip = ip
c.HubFactory.regport = int(ports)
self.location = cfg['location']
if not self.engine_ssh_server:
self.engine_ssh_server = cfg['ssh']
# load client config
with open(os.path.join(self.profile_dir.security_dir, 'ipcontroller-client.json')) as f:
cfg = json.loads(f.read())
assert key == cfg['exec_key'], "exec_key mismatch between engine and client keys"
xport,addr = cfg['url'].split('://')
c.HubFactory.client_transport = xport
ip,ports = addr.split(':')
c.HubFactory.client_ip = ip
if not self.ssh_server:
self.ssh_server = cfg['ssh']
assert int(ports) == c.HubFactory.regport, "regport mismatch"
示例5: unpack_legacy_message
def unpack_legacy_message(headers, message):
"""Unpack legacy pubsub messages for VIP agents.
Loads JSON-formatted message parts and removes single-frame messages
from their containing list. Does not alter headers.
"""
if not isinstance(headers, Headers):
headers = Headers(headers)
try:
content_type = headers["Content-Type"]
except KeyError:
return headers, message
if isinstance(content_type, basestring):
if content_type.lower() == "application/json":
if isinstance(message, list) and len(message) == 1:
return jsonapi.loads(message[0])
if isinstance(message, basestring):
return jsonapi.loads(message)
if isinstance(message, list) and len(message) == 1:
return message[0]
if isinstance(content_type, list) and isinstance(message, list):
parts = [
(jsonapi.loads(msg) if str(ctype).lower() == "application/json" else msg)
for ctype, msg in zip(content_type, message)
]
parts.extend(message[len(parts) :])
if len(parts) == len(content_type) == 1:
return parts[0]
return parts
return message
示例6: test_agent_last_update_increases
def test_agent_last_update_increases(volttron_instance):
agent = volttron_instance.build_agent()
s = json.loads(agent.vip.health.get_status())
dt = dateparse(s['last_updated'], fuzzy=True)
agent.vip.health.set_status(STATUS_UNKNOWN, 'Unknown now!')
gevent.sleep(1)
s = json.loads(agent.vip.health.get_status())
dt2 = dateparse(s['last_updated'], fuzzy=True)
assert dt < dt2
示例7: capture_data
def capture_data(self, peer, sender, bus, topic, headers, message, device):
timestamp_string = headers.get(headers_mod.DATE)
timestamp, my_tz = process_timestamp(timestamp_string)
try:
# 2.0 agents compatability layer makes sender == pubsub.compat so
# we can do the proper thing when it is here
if sender == 'pubsub.compat':
message = jsonapi.loads(message[0])
if isinstance(message, dict):
values = message
else:
values = message[0]
except ValueError as e:
_log.error("message for {topic} bad message string: {message_string}".format(topic=topic,
message_string=message[0]))
return
except IndexError as e:
_log.error("message for {topic} missing message string".format(topic=topic))
return
except Exception as e:
_log.exception(e)
return
meta = {}
try:
# 2.0 agents compatability layer makes sender == pubsub.compat so
# we can do the proper thing when it is here
if sender == 'pubsub.compat':
if isinstance(message[1], str):
meta = jsonapi.loads(message[1])
if not isinstance(message, dict):
meta = message[1]
except ValueError as e:
_log.warning("meta data for {topic} bad message string: {message_string}".format(topic=topic,
message_string=message[0]))
except IndexError as e:
_log.warning("meta data for {topic} missing message string".format(topic=topic))
if topic.startswith('analysis'):
source = 'analysis'
else:
source = 'scrape'
_log.debug("Queuing {topic} from {source} for publish".format(topic=topic,
source=source))
for key, value in values.iteritems():
point_topic = device + '/' + key
self._event_queue.put({'source': source,
'topic': point_topic,
'readings': [(timestamp,value)],
'meta': meta.get(key,{})})
示例8: test_send
def test_send(self):
self.publisher.send('test', 'method', '{"temp": 20, "humid": 30}')
result = self.subscriber.recv()
self.assertEqual(result[0], b'test') # data_type
msg = json.loads(result[1])
self.assertEqual(msg[0], 'method')
data = json.loads(msg[1])
self.assertEqual(data['temp'], 20)
self.assertEqual(data['humid'], 30)
示例9: test_agent_status_changes
def test_agent_status_changes(volttron_instance):
unknown_message = "This is unknown"
bad_message = "Bad kitty"
agent = volttron_instance.build_agent()
agent.vip.health.set_status(STATUS_UNKNOWN, unknown_message)
r = json.loads(agent.vip.health.get_status())
assert unknown_message == r['context']
assert STATUS_UNKNOWN == r['status']
agent.vip.health.set_status(STATUS_BAD, bad_message)
r = json.loads(agent.vip.health.get_status())
assert bad_message == r['context']
assert STATUS_BAD == r['status']
示例10: test_call
def test_call(self):
self.state_handler.update_sensor({'test_temperature': 22})
self.state_handler.update_appliance({'viera': 1})
self.state_handler.__call__()
result = self.subscriber.recv()
msg = json.loads(result[1])
self.assertEqual(msg[0], 'mining')
data = json.loads(msg[1])
self.assertEqual(data['sensors']['test_temperature'], 22)
self.assertEqual(data['appliances']['viera'], 1)
示例11: pair_recv
def pair_recv(msg):
print "Received from Server:"
try:
try:
j = jsonapi.loads(''.join(msg))
except TypeError:
j = jsonapi.loads(msg)
if j['state'] == 'naming':
#assign_names(j['mapping'])
forward_from_mesh()
elif j['state'] == 'commanding':
send_commands(j['commanding'])
finally:
pass
示例12: _on_new_data
def _on_new_data(self, topic, headers, message, match):
"""watching for new data"""
data = jsonapi.loads(message[0])
# self.current_spacetemp = float(data["ZoneTemp"])
self.current_spacetemp = 76
droveride = bool(int(data["CoolCall2"]))
occupied = bool(int(data["Occupied"]))
if droveride and self.state not in ('IDLE', 'CLEANUP', 'STARTUP'):
print 'User Override Initiated'
self.cancel_event()
if not occupied and self.state in ('DR_EVENT', 'RESTORE'):
self.cancel_event()
if self.state == 'IDLE' or self.state=='STARTUP':
#self.default_coolingstpt = float(data["CoolingStPt"])
#self.default_heatingstpt = float(data["HeatingStPt"])
self.default_coolingstpt = 75.0
self.default_heatingstpt = 65.0
self.default_firststage_fanspeed = float(data["CoolSupplyFanSpeed1"])
self.default_secondstage_fanspeed = float(data["CoolSupplyFanSpeed2"])
self.default_damperstpt = float(data["ESMDamperMinPosition"])
if self.state == 'STARTUP':
self.state = 'IDLE'
示例13: routerRecv
def routerRecv(self, message):
"""
message = [ ... , request, image/blank]
request = {'timestamp': timestamp,
'task': 'detection'/'recognition'/'tracking',
'parameters': (...)}
"""
request = loads(message[-2])
if request["task"] == "detection":
self.logger.debug("start detection")
with open("image.jpg", "wb") as f:
f.write(message[-1])
sleep = random.randint(1, 2) # detection
time.sleep(sleep)
message[-2] = dumps("detection")
message[-1] = ""
self.rtr.send_multipart(message)
elif request["task"] == "tracking":
self.logger.debug("prepare to tracking")
message[-1] = "finish"
tracker.Tracker(self.rtr, message)
else:
self.logger.debug("requested task is not supported")
示例14: recv_message
def recv_message(self, flags=0):
'''Recieve a message as (topic, headers, message) tuple.'''
topic = self.recv_string(flags)
headers = self.recv_string(flags) if self.rcvmore else ''
headers = jsonapi.loads(headers) if headers else {}
message = self.recv_multipart(flags) if self.rcvmore else []
return topic, Headers(headers), message
示例15: handle_new
def handle_new(self, headers, message, now):
print 'handle new'
requester = headers.get('requesterID')
self.task_id = headers.get('taskID')
priority = headers.get('priority')
try:
requests = jsonapi.loads(message[0])
requests = requests[0]
except (ValueError, IndexError) as ex:
# Could be ValueError of JSONDecodeError depending
# on if simplesjson was used. JSONDecodeError
# inherits from ValueError
#We let the schedule manager tell us this is a bad request.
_log.error('bad request: {request}, {error}'.format(request=requests, error=str(ex)))
requests = []
device, start, end = requests
self.start_time = parser.parse(start, fuzzy=True)
self.end_time = parser.parse(end, fuzzy=True)
event = sched.Event(self.announce)
self.schedule(self.start_time, event)
topic = topics.ACTUATOR_SCHEDULE_RESULT()
headers = self.get_headers(requester, task_id=self.task_id)
headers['type'] = SCHEDULE_ACTION_NEW
self.publish_json(topic, headers, {'result':'SUCCESS',
'data': 'NONE',
'info': 'NONE'})