小编Gus*_*rra的帖子

协同之外的Aiohttp ClientSession

我有一个REST API包装器,应该在交互式Python会话中运行.HTTP请求既可以通过自动后台线程(使用API​​包装器),也可以由最终用户通过交互式会话手动完成.我试图将所有HTTP请求管理从前一个新的每线程请求方法迁移到asyncio,但由于我无法在主线程中运行asyncio循环(它必须是免费的ad-hoc Python命令/请求),我写了以下内容在后台线程中运行它:

import aiohttp
import asyncio
from concurrent.futures import ThreadPoolExecutor

def start_thread_loop(pool=None):
    """Starts thread with running loop, bounding the loop to the thread"""
    def init_loop(loop):
        asyncio.set_event_loop(loop)  # bound loop to thread
        loop.run_forever()
    _pool = ThreadPoolExecutor() if pool is None else pool
    loop = asyncio.new_event_loop()
    future = _pool.submit(init_loop, loop)
    return future, loop

def send_to_loop(coro, loop):
    """Wraps couroutine in Task object and sends it to given loop"""
    return asyncio.run_coroutine_threadsafe(coro, loop=loop)
Run Code Online (Sandbox Code Playgroud)

实际的API包装器类似于以下内容:

class Foo:
    def __init__(self):
        _, self.loop = start_thread_loop()
        self.session = …
Run Code Online (Sandbox Code Playgroud)

python multithreading python-asyncio aiohttp

10
推荐指数
1
解决办法
3058
查看次数

如何使用Pandas从InfluxDB中检索超过10k行?

我正在尝试使用InfluxDB的Python客户端来检索存储在InfluxDB上的数据,但不能超过10k行.我(不成功)跟随的例子在这里.综上所述:

import influxdb
dfclient = influxdb.DataFrameClient('localhost', 8086, 'root', 'root', 'mydb')
q = "select * from some_measurement"
df = dfclient.query(q, chunked=True)  # Returns only 10k points
Run Code Online (Sandbox Code Playgroud)

这个问题似乎涉及到InfluxDB的文件化的内部限制在这里(即max-row-limit配置选项).我正在浏览消息来源,试图找出如何获得大于10k行的DataFrame,但是对于解决这个问题的任何帮助都将受到高度赞赏.

python pandas influxdb influxdb-python

6
推荐指数
1
解决办法
3622
查看次数

如何在 Polars 数据框中打开 Excel 文件?

我是一个 python pandas 用户,但最近发现了关于 Polars 数据框,它看起来很有前途并且速度非常快。我无法找到在极坐标中打开 Excel 文件的方法。Polars 很高兴阅读csvjson等,但不是 excel。

我是 pandas 中 excel 文件的广泛用户,我想尝试使用极坐标。我在 Excel 中有很多工作表,pandas 自动读取。我怎样才能对极地做同样的事情?

我缺少什么?

python excel dataframe pandas python-polars

4
推荐指数
1
解决办法
7305
查看次数

aiohttp和websockets有什么区别/兼容性?

aiohttpwebsocket支持(即WebSocketResponse)和websockets (均提供异步支持)有什么区别?可以混合吗?

python websocket python-asyncio aiohttp

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

如何从Jinja2模板获取所有未定义的变量?

我试图从Jinja2模板中获取所有未定义的变量。假设我有如下模板。

tmpstr = """
{% for row in csv %}
sample {{row.field1}} stuff {{row.field2}} morestuff {{row.field3}}
{% endfor %}
"""
Run Code Online (Sandbox Code Playgroud)

然后输入字典如下

cxt = {'csv': [
    {'field3': 1234, 'field4': 12314},
    {'field3': 2222, 'field4': 1213}
]}
Run Code Online (Sandbox Code Playgroud)

这是我尝试渲染它的方式。

env = Environment(undefined=Undefined)
tmp = env.from_string(tmpstr)
tmpsrc = tmp.render(cxt)
print(tmpsrc)
Run Code Online (Sandbox Code Playgroud)

模板期望变量field1field2field3存在。但是field1field2并且不存在。我的目的是找到所有缺失的变量。

Jinja2默默地忽略丢失的变量。因此,我尝试添加StrictUndefined选项:

errs = []
try:
    env = Environment(undefined=StrictUndefined)
    tmp = env.from_string(tmpstr)
    tmpsrc = tmp.render(cxt)
except Exception as e:
    errs.append(str(e))
print(errs) …
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask

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