小编Tim*_*hes的帖子

在 Bokeh HoverTool 中格式化 Pandas 日期时间

我试图让工具提示有一个格式很好的日期时间值,它是微秒精度。使用以下代码,我总是得到一个TB%明显不正确的测量值。我希望工具提示中的“日期”以与数据框中“date_time”字段相同的格式显示。

import pandas as pd
from bokeh.models import HoverTool
from bokeh.models.formatters import DatetimeTickFormatter
from bokeh.plotting import figure, output_notebook, show


output_notebook()

p = figure(plot_width=400, plot_height=400, x_axis_type="datetime")


d = {
    'timestamp_micros': [1530479286336096,1530479286362156,1530479286472230,1530479286488213,1530479286495292], 
    'height': [6, 7, 2, 4, 5],
    'info': ['foo','bar','baz','qux','quux'],
}
df = pd.DataFrame(data=d)
df['date_time'] = pd.to_datetime(df['timestamp_micros'], unit='us')
display(df)


p.circle(x='date_time', y='height', source=df, line_width=2, size=15, color="navy", alpha=0.5)
p.line(x='date_time', y='height', source=df, line_width=2, color="navy", alpha=0.5)

hover = HoverTool(
    tooltips = [
        ("Date", "@date_time{%Y-%m-%d %H:%M:%S.%f}"),
        ("Value", "@height{0.000000}"),
        ("info", "@info"),
    ],
    formatters={
        'Date': 'datetime',
        'Value' …
Run Code Online (Sandbox Code Playgroud)

python pandas bokeh

4
推荐指数
2
解决办法
5610
查看次数

带有 call_later 的 Python 异步递归

我正在尝试创建一个简单的监控系统,它会定期检查事物并记录它们。这是我尝试使用的逻辑的简化示例,但我不断收到RuntimeWarning: coroutine 'foo' was never awaited错误消息。

我应该如何从自身重新安排异步方法?

test.py 中的代码:

import asyncio
from datetime import datetime

async def collect_data():
    await asyncio.sleep(1)
    return {"some_data": 1,}

async def foo(loop):
    results = await collect_data()
    # Log the results
    print("{}: {}".format(datetime.now(), results))
    # schedule to run again in X seconds
    loop.call_later(5, foo, loop)

if __name__ == '__main__':

    loop = asyncio.get_event_loop()
    loop.create_task(foo(loop))
    loop.run_forever()
    loop.close()
Run Code Online (Sandbox Code Playgroud)

错误:

pi@raspberrypi [0] $ python test.py 
2018-01-03 01:59:22.924871: {'some_data': 1}
/usr/lib/python3.5/asyncio/events.py:126: RuntimeWarning: coroutine 'foo' was never awaited
  self._callback(*self._args)
Run Code Online (Sandbox Code Playgroud)

python recursion python-asyncio

3
推荐指数
1
解决办法
6710
查看次数

当客户端不正常退出时,如何检测服务器上 Python aiohttp Web 套接字的关闭

我有一个简单的命令和控制服务器server.py(完全不安全 - 不要使用),一个被动客户端update_client.py和另一个可以发送命令的客户端update_commander.pyhttp://0.0.0.0:8080/处有一个 http 端点,其中列出了已连接的客户端。当update_commander.py脚本退出时,其客户端会被正确清理。当 update_client.py断开连接时,服务器不会注意到断开连接,并且在发送进一步的消息后,我update_commander.py会收到每个幽灵客户端连接的错误socket.send() raised exception.。清理代码标记为### CLEANUP CODE ###

我觉得我应该做的是,当我尝试发送到套接字但没有引发异常,只是向标准输出发送一条消息时捕获错误。

服务器.py

import uuid
import asyncio
import aiohttp
from aiohttp import web


class Client(object):

    def __init__(self):
        self.websocket = None
        self.name = None


class ClientList(web.View):
    async def get(self):

        clients = self.request.app['clients']

        client_list = [client.name for name, client in clients.items()]
        txt = ", ".join(client_list)
        return web.Response(text=txt)


class WebSocket(web.View):
    async def get(self):
        ws = web.WebSocketResponse()
        await …
Run Code Online (Sandbox Code Playgroud)

python aiohttp

3
推荐指数
1
解决办法
4090
查看次数

标签 统计

python ×3

aiohttp ×1

bokeh ×1

pandas ×1

python-asyncio ×1

recursion ×1